Junior — Middle
Какво означава ключовата дума volatile в програмирането на Java?
sobes.tech AI
Отговор от AI
В Java ключовата дума volatile се използва за обозначаване на променлива, чиято стойност може да бъде променена от няколко нишки едновременно. Тя гарантира, че четенето и писането на тази променлива ще се извършват директно от основната памет, а не от кеша на процесора, което осигурява видимостта на промените между нишките.
Без volatile, една нишка може да види остаряла стойност на променливата, тъй като промените могат да останат в локалния кеш на друга нишка.
Пример:
public class Counter {
private volatile int count = 0;
public void increment() {
count++; // неатомна операция, но volatile гарантира видимост
}
public int getCount() {
return count;
}
}
Важно: volatile не гарантира атомарността на операциите, затова за сложни промени е по-добре да се използва синхронизация или атомарни класове от java.util.concurrent.atomic.