Atomic-классы — как работают без блокировок?

Ответ

Через CAS (compare-and-swap) — атомарную инструкцию CPU. Lock-free. Классы: AtomicInteger, AtomicLong, AtomicReference.

Разбор: Atomic-классы работают lock-free через аппаратную инструкцию CAS (compare-and-swap): значение меняется только если оно не изменилось с момента чтения, иначе операция повторяется в цикле. Ловушки: volatile сам по себе даёт лишь видимость, а не атомарность i++; никакого монитора или спин-лока с эксклюзивной блокировкой здесь нет — в этом и смысл отсутствия блокировок.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться