Sobes.tech
Junior — Middle

Co oznacza słowo kluczowe volatile w programowaniu Java?

sobes.tech AI

Odpowiedź od AI

W języku Java słowo kluczowe volatile jest używane do oznaczania zmiennej, której wartość może być zmieniana przez wiele wątków jednocześnie. Zapewnia to, że odczyt i zapis tej zmiennej będą odbywać się bezpośrednio z głównej pamięci, a nie z pamięci podręcznej procesora, co zapewnia widoczność zmian między wątkami.

Bez volatile, jeden wątek może widzieć nieaktualną wartość zmiennej, ponieważ zmiany mogą pozostać w lokalnej pamięci podręcznej innego wątku.

Przykład:

public class Counter {
    private volatile int count = 0;

    public void increment() {
        count++; // operacja nieatomowa, ale volatile gwarantuje widoczność
    }

    public int getCount() {
        return count;
    }
}

Ważne: volatile nie zapewnia atomowości operacji, dlatego dla złożonych zmian lepiej używać synchronizacji lub atomowych klas z java.util.concurrent.atomic.