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