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

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

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

Пример с AtomicInteger:

java
AtomicInteger counter = new AtomicInteger(0);

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

Основные классы: AtomicInteger, AtomicLong, AtomicBoolean, AtomicReference. Под капотом используют sun.misc.Unsafe или VarHandle (Java 9+). Преимущество — отсутствие блокировок, но при высокой конкуренции возможны повторные попытки CAS.

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

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

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

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