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

Что гарантирует volatile

volatile гарантирует видимость изменений переменной для всех потоков и запрещает переупорядочивание операций с ней.

Основные гарантии:

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

Пример:

java
public class Example {
    private volatile boolean flag = false;

    public void toggleFlag() {
        flag = !flag; // Гарантированно видно другим потокам
    }
}

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

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

Используется для простых флагов или однократной инициализации (например, в шаблоне Singleton с DCL).

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

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

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

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