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