Sobes.tech
Junior — Middle

Millistel juhtudel on soovitatav kasutada võtmesõna volatile Java-s?

sobes.tech AI

Vastus AI-lt

Java-s volatile märksõna rakstīts mainīgajiem, kurus var mainīt vairākas pavedienu vienlaikus. Tas garantē, ka:

  • Mainija lasīšana alati toimub peamises mälus, mitte niidi vahemälus.
  • Kirjutamine muutujasse muutub kohe nähtavaks teistele niitidele.

Soovitatav on kasutada volatile, kui:

  • Muutuja kasutatakse lippude või olekute jaoks, mida loevad ja kirjutavad erinevad niidid.
  • Täielik sünkroniseerimine ei ole vajalik, kuid muutuste nähtavus peab olema garanteeritud.

Näide:

public class Flag {
    private volatile boolean active = false;

    public void activate() {
        active = true; // muudatus on kohe nähtav teistele niitidele
    }

    public boolean isActive() {
        return active; // alati ajakohane väärtus
    }
}

Oluline: volatile ei taga keerukate operatsioonide atomilisust, vaid ainult muutuste nähtavust.