Sobes.tech
Junior — Middle

V akých prípadoch sa odporúča použiť kľúčové slovo volatile v Jave?

sobes.tech AI

Odpoveď od AI

Kľúčové slovo volatile v Jave sa používa pre premenné, ktoré môžu byť súčasne menené viacerými vláknami. Zaručuje, že:

  • Čítanie premennej bude vždy z hlavnej pamäte, nie z cache vlákna.
  • Zápis do premennej sa okamžite stáva viditeľným pre ostatné vlákna.

Odporúča sa používať volatile, keď:

  • Premenná slúži ako vlajky alebo stavy, ktoré sú čítané a zapisované rôznymi vláknami.
  • Nie je potrebná úplná synchronizácia, ale je potrebné zabezpečiť viditeľnosť zmien.

Príklad:

public class Flag {
    private volatile boolean active = false;

    public void activate() {
        active = true; // zmena bude ihneď viditeľná ostatným vláknam
    }

    public boolean isActive() {
        return active; // vždy aktuálna hodnota
    }
}

Dôležité: volatile nezaručuje atomickosť zložitých operácií, iba viditeľnosť zmien.