Sobes.tech
Back to questions
Junior — Middle
77

Применяли ли вы модификатор volatile в своих проектах?

Answer from AI

sobes.tech AI

Модификатор volatile в Java используется для обеспечения видимости изменений переменной между потоками. Если переменная объявлена как volatile, то чтение и запись этой переменной происходит напрямую из основной памяти, а не из кэша потока, что предотвращает кэширование и обеспечивает актуальность данных.

Применял volatile в проектах, когда нужно было гарантировать, что один поток увидит изменения, сделанные другим, без использования более тяжелых механизмов синхронизации, например, для флагов остановки потоков или простых индикаторов состояния.

Пример:

public class Flag {
    private volatile boolean running = true;

    public void stop() {
        running = false;
    }

    public void run() {
        while (running) {
            // выполнение задачи
        }
    }
}

Здесь volatile гарантирует, что изменение running в методе stop() будет сразу видно в методе run() в другом потоке.