Назад к вопросам
СБЕР
Senior
4
Для чего нужно ключевое слово volatile?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Ключевое слово volatile в Java используется для обозначения переменной, значение которой может изменяться в разных потоках. Оно гарантирует:
- Видимость изменений: когда один поток изменяет значение volatile-переменной, другие потоки сразу видят это изменение.
- Запрет оптимизаций компилятора и процессора: операции с volatile переменными не кэшируются и не переупорядочиваются, что предотвращает проблемы с синхронизацией.
Пример:
volatile boolean flag = false;
// Поток 1
flag = true;
// Поток 2
if (flag) {
// увидит обновленное значение
}
Без volatile поток 2 может не увидеть обновление из-за кэширования или переупорядочивания инструкций.