Sobes.tech
Junior — Middle

Kokiais atvejais rekomenduojama naudoti volatile raktažodį Java?

sobes.tech AI

Atsakymas iš AI

Java kalbos raktinis žodis volatile taikomas kintamiesiems, kurie gali būti keičiami kelių srautų vienu metu. Jis užtikrina, kad:

  • Kintamojo skaitymas visada bus atliekamas iš pagrindinės atminties, o ne iš srauto talpyklos.
  • Rašymas į kintamąjį iš karto tampa matomas kitiems srautams.

Rekomenduojama naudoti volatile, kai:

  • Kintamasis naudojamas vėliavoms ar būsenoms, kurios yra skaitomos ir rašomos skirtingų srautų.
  • Nereikalaujama pilna sinchronizacija, bet būtina garantuoti pokyčių matomumą.

Pavyzdys:

public class Flag {
    private volatile boolean active = false;

    public void activate() {
        active = true; // pokytis iš karto matomas kitiems srautams
    }

    public boolean isActive() {
        return active; // visada naujausia reikšmė
    }
}

Svarbu: volatile nesuteikia atomingumo sudėtingoms operacijoms, tik pokyčių matomumą.