Back to questions
Simbirsoft
Junior — Middle
62
Какова роль ключевого слова volatile в Java и в каком случае его использование оправдано?
Companies where asked
Answer from AI
sobes.tech AI
Ключевое слово volatile в Java используется для обозначения переменной, значение которой может изменяться в разных потоках. Оно гарантирует, что чтение и запись этой переменной будут происходить напрямую из основной памяти, а не из кэша процессора, что обеспечивает видимость изменений между потоками.
Использование volatile оправдано, когда:
- Нужно обеспечить видимость изменений переменной между потоками.
- Нет необходимости в атомарности сложных операций (например, инкремент не является атомарным).
Пример:
public class Flag {
private volatile boolean active = true;
public void stop() {
active = false;
}
public void run() {
while (active) {
// выполняем работу
}
}
}
Здесь volatile гарантирует, что когда один поток вызовет stop(), другой поток в методе run() увидит обновленное значение active и завершит цикл.