Встречается на собеседованиях • сегодня
Есть ли внутри AtomicReference синхронизация
`AtomicReference` использует не блокирующую синхронизацию через **CAS (Compare-And-Swap)** операции, реализованные на уровне процессора (например, `cmpxchg` в x86). Это обеспечивает потокобезопасность без явных блокировок (`synchronized`).
**Пример:**
```java
AtomicReference ref = new AtomicReference<>("initial");
// Потокобезопасное обновление
ref.compareAndSet("initial", "updated"); // Успешно, если текущее значение == "initial"
```
**Нюансы:**
- Нет **deadlock**’ов (т.к. нет блокировок).
- **ABA-проблема**: если между чтением и CAS значение менялось, но вернулось к исходному, CAS всё равно выполнится. Решение — `AtomicStampedReference`.
- Подходит для частых **read** и редких **write** операций.
Использует `sun.misc.Unsafe` или `VarHandle` (в новых версиях Java) для низкоуровневого доступа.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы