Что такое Atomic-классы?

Ответ

AtomicInteger, AtomicLong, AtomicReference. CAS (Compare-And-Swap) — атомарная инструкция CPU. Lock-free. Методы: get, set, compareAndSet, incrementAndGet. Для счётчиков с высоким contention — LongAdder (лучше масштабируется).

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

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

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