Назад к вопросам
Senior
8
Что такое volatile?
Компании, где спрашивали
Octo
Ответ от нейросети
sobes.tech AI
В Java ключевое слово volatile используется для обозначения переменной, значение которой может изменяться несколькими потоками одновременно. Оно гарантирует, что чтение и запись этой переменной будут происходить напрямую из основной памяти, а не из кэша процессора, обеспечивая видимость изменений между потоками.
Это значит, что если один поток изменил значение volatile-переменной, другие потоки сразу увидят это новое значение.
Пример:
public class Example {
private volatile boolean flag = false;
public void writer() {
flag = true; // изменение будет сразу видно другим потокам
}
public void reader() {
if (flag) {
// гарантированно увидит обновленное значение flag
}
}
}
Важно понимать, что volatile не обеспечивает атомарность операций, а только видимость изменений. Для сложных операций синхронизация или другие механизмы concurrency control необходимы.