Sobes.tech
Junior — Middle

Môžete vysvetliť, ako funguje model pamäte v Jave a aké sú jeho základné princípy?

sobes.tech AI

Odpoveď od AI

Model pamäte v Jave popisuje, ako vlákna interagujú s pamäťou, vrátane práce s premennými a synchronizácie. Základné princípy:

  • Viditeľnosť zmien: zmeny vykonané jedným vláknom musia byť viditeľné pre ostatné vlákna pri správnej synchronizácii.
  • Atomickosť: operácie nad premennými môžu byť atómové (napríklad čítanie/zápis primitívnych typov, okrem long a double bez volatile).
  • Poradie vykonávania: prekladač a procesor môžu meniť poradie inštrukcií, ale za dodržania pravidiel synchronizácie.

Java Memory Model (JMM) definuje, ako a kedy sa zmeny premenných stávajú viditeľnými pre ostatné vlákna, pomocou kľúčových slov volatile, synchronized a ďalších mechanizmov.

Príklad:

volatile int counter = 0;

// Zmena counter v jednom vlákne bude garantovane viditeľná v inom
counter = 5;

Bez volatile alebo synchronizácie sa zmeny nemusia ihneď stať viditeľnými pre ostatné vlákna kvôli cache a optimalizáciám.