Junior — Middle
W jakich przypadkach zaleca się używanie słowa kluczowego volatile w Java?
sobes.tech AI
Odpowiedź od AI
Słowo kluczowe volatile w Java jest stosowane do zmiennych, które mogą być modyfikowane przez wiele wątków jednocześnie. Zapewnia, że:
- Odczyt zmiennej zawsze będzie pochodził z głównej pamięci, a nie z pamięci podręcznej wątku.
- Zapis do zmiennej natychmiast staje się widoczny dla innych wątków.
Zaleca się używanie volatile, gdy:
- Zmienna jest używana do flag lub stanów, które są odczytywane i zapisywane przez różne wątki.
- Nie jest wymagana pełna synchronizacja, ale konieczne jest zapewnienie widoczności zmian.
Przykład:
public class Flag {
private volatile boolean active = false;
public void activate() {
active = true; // zmiana będzie widoczna dla innych wątków od razu
}
public boolean isActive() {
return active; // zawsze aktualna wartość
}
}
Ważne: volatile nie zapewnia atomowości złożonych operacji, tylko widoczność zmian.