Sobes.tech
Назад к вопросам
Junior — Middle
65

Какова роль ключевого слова volatile в управлении многопоточностью в Java?

Компании, где спрашивали
IT OneIT One

Ответ от нейросети

sobes.tech AI

Ключевое слово volatile в Java используется для обозначения переменной, значение которой может изменяться в разных потоках. Оно гарантирует, что чтение и запись этой переменной будут происходить напрямую из основной памяти, а не из кэша процессора.

Это важно для многопоточности, чтобы избежать ситуации, когда один поток видит устаревшее значение переменной, изменённое другим потоком.

Однако volatile не обеспечивает атомарность операций (например, инкремент), а только видимость изменений. Для сложных операций нужно использовать синхронизацию или атомарные классы из java.util.concurrent.atomic.

Пример:

volatile boolean flag = false;

// Поток 1
flag = true;

// Поток 2
if (flag) {
    // гарантированно увидит обновлённое значение
}