Назад к вопросам
Альфа-Банк
Junior — Middle
63
В каких случаях следует использовать ключевое слово volatile в Java?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Ключевое слово volatile в Java используется для обозначения переменной, значение которой может изменяться несколькими потоками одновременно. Оно гарантирует, что чтение и запись этой переменной будут происходить напрямую из основной памяти, а не из кэша потока, обеспечивая видимость изменений между потоками.
Использовать volatile следует в случаях, когда:
- Переменная может изменяться в одном потоке и читаться в другом.
- Не требуется атомарность сложных операций (например, инкремент), а только гарантируется актуальность значения.
- Нужно избежать использования более тяжелых механизмов синхронизации (например,
synchronized), когда достаточно обеспечить видимость изменений.
Пример:
class Flag {
private volatile boolean stop = false;
public void requestStop() {
stop = true;
}
public void run() {
while (!stop) {
// работа
}
}
}
Здесь без volatile поток, выполняющий run(), может не увидеть изменение stop.