Junior — Middle
Můžete vysvětlit, jak funguje model paměti v Java a jaké jsou jeho základní principy?
sobes.tech AI
Odpověď od AI
Model paměti v Javě popisuje, jak vlákna interagují s pamětí, včetně práce s proměnnými a synchronizace. Základní principy:
- Viditelnost změn: změny provedené jedním vláknem musí být viditelné pro ostatní vlákna při správné synchronizaci.
- Atomickost: operace nad proměnnými mohou být atomické (například čtení/zápis primitivních typů, kromě long a double bez volatile).
- Pořadí provádění: překladač a procesor mohou měnit pořadí instrukcí, ale za dodržení pravidel synchronizace.
Java Memory Model (JMM) definuje, jak a kdy se změny proměnných stávají viditelnými pro ostatní vlákna, pomocí klíčových slov volatile, synchronized a dalších mechanismů.
Příklad:
volatile int counter = 0;
// Změna counter v jednom vlákně bude garantovaně viditelná v jiném
counter = 5;
Bez volatile nebo synchronizace se změny nemusí ihned stát viditelnými pro ostatní vlákna kvůli cache a optimalizacím.