Встречается на собеседованиях • сегодня

Какие гарантии дает volatile

volatile обеспечивает две ключевые гарантии:

  1. Видимость изменений – запись в volatile-переменную сразу становится видимой для всех потоков.
  2. Запрет переупорядочивания – операции с volatile не могут быть переупорядочены компилятором или процессором.

Пример:

java
class Example {
    private volatile boolean flag = false;

    public void setFlag() {
        flag = true; // Запись гарантированно видна другим потокам
    }

    public void checkFlag() {
        while (!flag) { // Чтение всегда актуальное
            // Ждем изменения флага
        }
    }
}

Ограничения:

  • Не гарантирует атомарность составных операций (например, i++).
  • Не заменяет synchronized или Lock для сложных сценариев.

Используется для простых флагов или однократных изменений состояния.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы