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