Sobes.tech
Junior — Middle

In welke gevallen wordt het aanbevolen om het sleutelwoord volatile in Java te gebruiken?

sobes.tech AI

Antwoord van AI

Het sleutelwoord volatile in Java wordt toegepast op variabelen die door meerdere threads gelijktijdig kunnen worden gewijzigd. Het garandeert dat:

  • Het lezen van de variabele altijd uit het hoofdgeheugen gebeurt, niet uit de cache van de thread.
  • Het schrijven naar de variabele onmiddellijk zichtbaar wordt voor andere threads.

Het wordt aanbevolen om volatile te gebruiken wanneer:

  • De variabele wordt gebruikt voor vlaggen of staten die door verschillende threads worden gelezen en geschreven.
  • Volledige synchronisatie niet nodig is, maar wel de zichtbaarheid van wijzigingen gegarandeerd moet worden.

Voorbeeld:

public class Flag {
    private volatile boolean active = false;

    public void activate() {
        active = true; // de wijziging is onmiddellijk zichtbaar voor andere threads
    }

    public boolean isActive() {
        return active; // altijd de actuele waarde
    }
}

Belangrijk: volatile garandeert niet de atomariteit van complexe operaties, alleen de zichtbaarheid van wijzigingen.