Sobes.tech
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.