Sobes.tech
Назад к вопросам
Senior
4

Для чего нужно ключевое слово volatile?

Компании, где спрашивали
СБЕРСБЕР

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

sobes.tech AI

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

  • Видимость изменений: когда один поток изменяет значение volatile-переменной, другие потоки сразу видят это изменение.
  • Запрет оптимизаций компилятора и процессора: операции с volatile переменными не кэшируются и не переупорядочиваются, что предотвращает проблемы с синхронизацией.

Пример:

volatile boolean flag = false;

// Поток 1
flag = true;

// Поток 2
if (flag) {
    // увидит обновленное значение
}

Без volatile поток 2 может не увидеть обновление из-за кэширования или переупорядочивания инструкций.