Junior — Middle
100
Java-da dəyişənlərlə işləyərkən volatile açar sözünün istifadəsi hansı davranışı təmin edir?
AI-dan cavab
sobes.tech Süni İntellekt
Ключевое слово volatile в Java гарантирует, что чтение и запись переменной будут происходить напрямую из основной памяти, а не из кэша процессора или локальной копии потока. Это обеспечивает:
- Видимость изменений: когда один поток изменяет значение volatile-переменной, другие потоки сразу увидят это изменение.
- Запрет переупорядочивания: операции с volatile-переменной не будут переставлены компилятором или процессором относительно других операций.
Пример использования:
public class Flag {
private volatile boolean active = true;
public void stop() {
active = false;
}
public void run() {
while (active) {
// выполняем работу
}
}
}
Здесь без volatile поток, выполняющий run(), может не увидеть изменение active в методе stop(). С volatile гарантируется, что цикл завершится, когда active станет false.