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