Back to questions
Senior
10
Что такое volatile?
Companies where asked
Octo
Answer from AI
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 необходимы.