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

Какую проблему решает volatile

volatile решает проблему видимости изменений переменной между потоками и запрещает переупорядочивание операций с ней. Без volatile изменения, сделанные в одном потоке, могут быть не видны другим потокам из-за кеширования процессором или оптимизаций JVM.

Пример:

java
class Example {
    private volatile boolean flag = false;

    public void toggleFlag() {
        flag = true; // Изменение видно всем потокам сразу
    }

    public boolean isFlag() {
        return flag; // Чтение всегда актуального значения
    }
}

Ключевые моменты:

  1. Гарантирует happens-before между записью и последующим чтением
  2. Не обеспечивает атомарность составных операций (например, инкремента)
  3. Дешевле synchronized, но с более узкой областью применения
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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