Sobes.tech
Junior — Middle

Co znamená klíčové slovo volatile v programování Java?

sobes.tech AI

Odpověď od AI

V jazyce Java se klíčové slovo volatile používá k označení proměnné, jejíž hodnota může být změněna více vlákny současně. Zajišťuje, že čtení a zápis této proměnné probíhají přímo z hlavní paměti, nikoli z cache procesoru, což zajišťuje viditelnost změn mezi vlákny.

Bez volatile může jedno vlákno vidět zastaralou hodnotu proměnné, protože změny mohou zůstat v lokální cache jiného vlákna.

Příklad:

public class Counter {
    private volatile int count = 0;

    public void increment() {
        count++; // neatomická operace, ale `volatile` garantuje viditelnost
    }

    public int getCount() {
        return count;
    }
}

Důležité: volatile nezaručuje atomárnost operací, proto je u složitějších změn vhodnější použít synchronizaci nebo atomické třídy z balíčku java.util.concurrent.atomic.