Sobes.tech
Junior — Middle

V jakých případech se doporučuje používat klíčové slovo volatile v Javě?

sobes.tech AI

Odpověď od AI

Klíčové slovo volatile v jazyce Java se používá u proměnných, které mohou být současně měněny více vlákny. Zaručuje, že:

  • Čtení proměnné bude vždy probíhat z hlavní paměti, nikoliv z cache vlákna.
  • Zápis do proměnné se okamžitě stává viditelným pro ostatní vlákna.

Doporučuje se používat volatile, když:

  • Proměnná slouží jako vlajky nebo stavy, které jsou čteny a zapisovány různými vlákny.
  • Není potřeba úplná synchronizace, ale je třeba zajistit viditelnost změn.

Příklad:

public class Flag {
    private volatile boolean active = false;

    public void activate() {
        active = true; // změna bude ihned viditelná ostatním vláknům
    }

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

Důležité: volatile nezaručuje atomaritu složitých operací, pouze viditelnost změn.