Junior — Middle
Wat betekent het sleutelwoord volatile in Java-programmering?
sobes.tech AI
Antwoord van AI
In Java wordt het sleutelwoord volatile gebruikt om een variabele aan te duiden waarvan de waarde door meerdere threads gelijktijdig kan worden gewijzigd. Het zorgt ervoor dat het lezen en schrijven van deze variabele direct uit het hoofdgeheugen gebeurt, niet uit de cache van de processor, wat de zichtbaarheid van wijzigingen tussen threads garandeert.
Zonder volatile kan een thread een verouderde waarde van de variabele zien, omdat wijzigingen in de lokale cache van een andere thread kunnen blijven hangen.
Voorbeeld:
public class Counter {
private volatile int count = 0;
public void increment() {
count++; // niet-atomare operatie, maar volatile garandeert zichtbaarheid
}
public int getCount() {
return count;
}
}
Belangrijk: volatile garandeert niet de atomariteit van operaties, dus voor complexe wijzigingen is het beter om synchronisatie of atomische klassen uit java.util.concurrent.atomic te gebruiken.