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

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

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

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

sobes.tech AI

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

Использование volatile оправдано, когда:

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

Пример:

public class Flag {
  private volatile boolean active = true;

  public void stop() {
    active = false;
  }

  public void run() {
    while (active) {
      // выполняем работу
    }
  }
}

Здесь volatile гарантирует, что когда один поток вызовет stop(), другой поток в методе run() увидит обновленное значение active и завершит цикл.