Sobes.tech
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.