Junior — Middle
Czy możesz wyjaśnić cel i zasadę działania słowa kluczowego volatile w kontekście rozwoju Android?
sobes.tech AI
Odpowiedź od AI
Słowo kluczowe volatile w Java (i, odpowiednio, w rozwoju Androida) jest używane do zapewnienia widoczności zmian zmiennej między wątkami.
Gdy zmienna jest zadeklarowana jako volatile, gwarantuje to:
- Odczyt zmiennej zawsze z głównej pamięci, a nie z pamięci podręcznej wątku.
- Zapis do zmiennej staje się natychmiast widoczny dla innych wątków.
Jest to ważne w środowisku wielowątkowym Androida, aby uniknąć sytuacji, gdy jeden wątek zmienił wartość, a inny nadal widzi starą.
Przykład:
private volatile boolean isRunning = true;
public void stop() {
isRunning = false;
}
public void run() {
while (isRunning) {
// wykonuj pracę
}
}
Bez volatile, wątek wykonujący run() może nie zauważyć zmiany isRunning i wejść w nieskończoną pętlę.
Jednak volatile nie zapewnia atomowości złożonych operacji, do tego potrzebne są inne mechanizmy synchronizacji.