Встречается на собеседованиях • сегодня
Что гарантирует volatile
volatile гарантирует видимость изменений переменной для всех потоков и запрещает переупорядочивание операций с ней.
Основные гарантии:
- Видимость – изменения volatile-переменной сразу становятся видны другим потокам.
- Запрет переупорядочивания – операции чтения/записи volatile не могут быть переставлены компилятором или процессором.
Пример:
java
public class Example {
private volatile boolean flag = false;
public void toggleFlag() {
flag = !flag; // Гарантированно видно другим потокам
}
}Ограничения:
- Не гарантирует атомарность сложных операций (например,
i++). - Не заменяет
synchronizedпри необходимости взаимного исключения.
Используется для простых флагов или однократной инициализации (например, в шаблоне Singleton с DCL).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы