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

Что подразумевается под ключевым словом volatile в программировании Java?

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

sobes.tech AI

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

Без volatile один поток может видеть устаревшее значение переменной, так как изменения могут оставаться в локальном кэше другого потока.

Пример:

public class Counter {
    private volatile int count = 0;

    public void increment() {
        count++; // операция не атомарна, но volatile гарантирует видимость
    }

    public int getCount() {
        return count;
    }
}

Важно: volatile не обеспечивает атомарность операций, поэтому для сложных изменений лучше использовать синхронизацию или атомарные классы из java.util.concurrent.atomic.