Junior — Middle
108
Ποια συμπεριφορά διασφαλίζει η λέξη-κλειδί volatile στη γλώσσα προγραμματισμού Java;
Απάντηση από AI
sobes.tech AI
Ключевое слово volatile в Java гарантирует, что чтение и запись переменной будут происходить напрямую из основной памяти, а не из кэша процессора или регистра. Это обеспечивает видимость изменений переменной между потоками: если один поток изменил значение volatile переменной, другие потоки сразу увидят это новое значение.
Также volatile предотвращает переупорядочивание операций компилятором и процессором относительно этой переменной, что важно для корректной синхронизации.
Пример:
volatile boolean flag = false;
// Поток 1
flag = true; // изменение видно другим потокам сразу
// Поток 2
if (flag) {
// гарантированно увидит обновленное значение flag
}
Однако volatile не обеспечивает атомарность сложных операций (например, инкремента), для этого нужны другие механизмы синхронизации.