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

На каком принципе основано неблокирующее поведение класса AtomicInteger

AtomicInteger основан на принципе Compare-And-Swap (CAS) — атомарной операции, которая сравнивает текущее значение с ожидаемым и обновляет его, если они совпадают. Это реализовано через нативные методы Unsafe, использующие аппаратную поддержку процессора.

Пример:

java
AtomicInteger counter = new AtomicInteger(0);
counter.incrementAndGet(); // Неблокирующая операция

Внутри incrementAndGet() использует цикл CAS:

  1. Читает текущее значение
  2. Пытается установить новое (старое + 1)
  3. Если другой поток изменил значение — повторяет операцию

Преимущества:

  • Нет блокировок (нет context switching)
  • Высокая производительность при низкой конкуренции

Недостатки:

  • При высокой конкуренции — много повторных попыток (busy waiting)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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