Sobes.tech
Назад к вопросам
Junior — Middle
57

Какую роль играет модификатор volatile в языке программирования и когда его применяют?

Компании, где спрашивали
IT OneIT One

Ответ от нейросети

sobes.tech AI

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

Когда применять volatile:

  • Для переменных, которые могут изменяться несколькими потоками и не требуют сложной синхронизации.
  • Когда нужно обеспечить простую гарантию видимости изменений без использования synchronized.

Пример:

public class Flag {
    private volatile boolean active = true;

    public void stop() {
        active = false;
    }

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

Здесь изменение active в одном потоке будет сразу видно в другом, что позволит корректно остановить цикл.