Sobes.tech
Junior — Middle
104

Quel comportement garantit l'utilisation du mot-clé volatile en programmation multithread en Java?

Réponse de l'IA

sobes.tech IA

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

  • Видимость изменений между потоками — когда один поток изменяет значение volatile-переменной, другие потоки сразу увидят это изменение.
  • Запрет оптимизаций компилятора и процессора, которые могут переупорядочивать операции с volatile-переменной.

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

Пример:

volatile boolean flag = false;

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

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