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.