Sobes.tech
Junior — Middle
102

Care este rolul cuvântului cheie volatile în Java și în ce cazuri este justificat utilizarea sa?

Companiile au fost întrebate
SimbirsoftSimbirsoft

Răspuns de la AI

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 и завершит цикл.