Junior — Middle
Ce înseamnă cuvântul cheie volatile în programarea Java?
sobes.tech AI
Răspuns de la AI
În Java, cuvântul cheie volatile este utilizat pentru a indica o variabilă a cărei valoare poate fi modificată de mai multe fire de execuție simultan. Acesta garantează că citirea și scrierea acestei variabile se vor face direct din memoria principală, nu din cache-ul procesorului, asigurând vizibilitatea modificărilor între fire.
Fără volatile, un fir de execuție poate vedea o valoare învechită a variabilei, deoarece modificările pot rămâne în cache-ul local al altui fir.
Exemplu:
public class Counter {
private volatile int count = 0;
public void increment() {
count++; // operație neatomica, dar `volatile` garantează vizibilitatea
}
public int getCount() {
return count;
}
}
Important: volatile nu garantează atomicitatea operațiilor, așa că pentru modificări complexe este mai bine să folosiți sincronizare sau clase atomice din java.util.concurrent.atomic.