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

Как работает Atomic переменная

Atomic переменные обеспечивают потокобезопасные операции без блокировок, используя низкоуровневые механизмы процессора (CAS - Compare-And-Swap). Они гарантируют атомарность чтения, записи и обновления значений.

Пример с AtomicInteger:

java
AtomicInteger counter = new AtomicInteger(0);

// Потокобезопасное инкрементирование
counter.incrementAndGet(); 

// CAS-операция
boolean updated = counter.compareAndSet(0, 1); // true, если текущее значение == 0

Ключевые особенности:

  • Не требуют synchronized
  • Подходят для счетчиков, флагов
  • Внутри используют sun.misc.Unsafe
  • Медленнее обычных переменных, но быстрее synchronized

Для сложных составных операций могут потребоваться дополнительные синхронизации.

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

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

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

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