Назад к вопросам
Middle
68
questionbank

Что означает переменная volatile?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

Гарантирует, что чтение переменной всегда берет последнее записанное значение, а запись — видна всем потокам сразу. Используется для обеспечения видимости изменений между потоками, но не обеспечивает атомарность сложных операций.

Пример:

class SomeClass {
    volatile boolean isRunning = true;

    void stopLoop() {
        isRunning = false;
    }

    void runLoop() {
        while (isRunning) {
            // do something
        }
    }
}

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