Junior — Middle
Kunt u het doel en de werking van het sleutelwoord volatile uitleggen in de context van Android-ontwikkeling?
sobes.tech AI
Antwoord van AI
Het sleutelwoord volatile in Java (en dus ook in Android-ontwikkeling) wordt gebruikt om de zichtbaarheid van wijzigingen in een variabele tussen threads te garanderen.
Wanneer een variabele als volatile wordt gedeclareerd, garandeert dit 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.
Dit is belangrijk in een multithread-omgeving in Android om situaties te voorkomen waarin één thread de waarde wijzigt, maar een andere nog steeds de oude ziet.
Voorbeeld:
private volatile boolean isRunning = true;
public void stop() {
isRunning = false;
}
public void run() {
while (isRunning) {
// voer werk uit
}
}
Zonder volatile kan de thread die run() uitvoert de wijziging in isRunning mogelijk niet zien en in een oneindige lus blijven hangen.
Echter, volatile garandeert niet de atomariteit van complexe operaties, daarvoor zijn andere synchronisatie-mechanismen nodig.