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

Будет ли атомарная операция с volatile переменной

Операции с volatile переменными не являются атомарными для всех типов данных.

  • Чтение/запись volatile переменных атомарны только для примитивов (int, boolean и т.д.), но не для long и double (на некоторых 32-битных платформах).
  • Составные операции (например, i++) не атомарны, даже если i объявлена как volatile.

Пример:

java
private volatile int counter = 0;

// Не атомарно!
public void increment() {
    counter++;  // Чтение + инкремент + запись – возможна потеря обновлений
}

Для атомарных операций используйте AtomicInteger, synchronized или другие механизмы синхронизации.

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

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

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

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