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

Как устроены атомарные переменные

Атомарные переменные (AtomicInteger, AtomicLong, AtomicBoolean и др.) обеспечивают потокобезопасные операции без явной синхронизации. Они работают через низкоуровневые механизмы процессора (CAS - Compare-And-Swap), что эффективнее блокировок.

Основные особенности:

  • Операции get(), set(), compareAndSet() выполняются атомарно
  • Используют volatile для обеспечения видимости изменений между потоками
  • Поддерживают атомарные операции типа incrementAndGet(), addAndGet()

Пример:

java
AtomicInteger counter = new AtomicInteger(0);

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

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

Под капотом используется sun.misc.Unsafe или VarHandle (в новых версиях Java).

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

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

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

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