Назад к вопросам
IT One
Junior — Middle
65
Какова роль ключевого слова volatile в управлении многопоточностью в Java?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Ключевое слово volatile в Java используется для обозначения переменной, значение которой может изменяться в разных потоках. Оно гарантирует, что чтение и запись этой переменной будут происходить напрямую из основной памяти, а не из кэша процессора.
Это важно для многопоточности, чтобы избежать ситуации, когда один поток видит устаревшее значение переменной, изменённое другим потоком.
Однако volatile не обеспечивает атомарность операций (например, инкремент), а только видимость изменений. Для сложных операций нужно использовать синхронизацию или атомарные классы из java.util.concurrent.atomic.
Пример:
volatile boolean flag = false;
// Поток 1
flag = true;
// Поток 2
if (flag) {
// гарантированно увидит обновлённое значение
}