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

Какие плюсы и минусы у volatile

Плюсы:

  • Гарантирует видимость изменений переменной для всех потоков (чтение всегда из main memory)
  • Предотвращает кэширование значения в регистрах процессора
  • Проще в использовании чем synchronized/Atomic

Минусы:

  • Не обеспечивает атомарность операций (i++ всё равно будет race condition)
  • Меньшая производительность чем у обычных переменных
  • Не заменяет synchronized для сложных операций

Пример:

java
private volatile boolean flag = true;

// Поток 1
flag = false; // изменение сразу видно другим потокам

// Поток 2
while(flag) { 
    // работает пока flag не изменится
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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