Junior — Middle
Čo znamená kľúčové slovo volatile v programovaní Java?
sobes.tech AI
Odpoveď od AI
V Jave sa kľúčové slovo volatile používa na označenie premennej, ktorej hodnota môže byť zmenená viacerými vláknami súčasne. Zabezpečuje, že čítanie a zápis tejto premennej sa budú vykonávať priamo z hlavnej pamäti, nie z cache procesora, čím sa zabezpečí viditeľnosť zmien medzi vláknami.
Bez volatile môže jedno vlákno vidieť zastaranú hodnotu premennej, pretože zmeny môžu zostať v lokálnej cache iného vlákna.
Príklad:
public class Counter {
private volatile int count = 0;
public void increment() {
count++; // neatomická operácia, ale `volatile` garantuje viditeľnosť
}
public int getCount() {
return count;
}
}
Dôležité: volatile nezaručuje atomickosť operácií, preto je pri zložitých zmenách vhodnejšie použiť synchronizáciu alebo atomické triedy z balíka java.util.concurrent.atomic.