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

Как работают Atomic типы

Atomic типы в Java (например, AtomicInteger, AtomicLong, AtomicReference) обеспечивают атомарные операции без использования блокировок, используя механизм compare-and-swap (CAS). Они хранят значение в volatile поле, что гарантирует видимость изменений между потоками.

Основные методы:

  • get() / set() – чтение/запись
  • compareAndSet(expected, new) – атомарное обновление, если текущее значение == expected
  • incrementAndGet() – атомарное увеличение

Пример:

java
AtomicInteger counter = new AtomicInteger(0);

// Потокобезопасный инкремент
int newValue = counter.incrementAndGet();

// Условное обновление
counter.compareAndSet(10, 20); // Обновит только если текущее значение 10

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

  • Высокая производительность в многопоточной среде (нет блокировок)
  • Гарантированная видимость изменений
  • Поддержка сложных атомарных операций

Используются для счетчиков, флагов и других shared-переменных в многопоточной среде.

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

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

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

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