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.