Sobes.tech
Back to questions
Junior — Middle
59

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

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

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

Используйте volatile, когда:

  • Переменная может изменяться в одном потоке и читаться в другом.
  • Не требуется атомарность операций (например, инкремент не подходит, так как он не атомарен).
  • Нужно обеспечить свежесть значения без использования более тяжелых механизмов синхронизации.

Пример:

volatile boolean flag = false;

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

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

Если не использовать volatile, поток 2 может не увидеть обновление flag из-за кэширования.