Многопоточность middle
Что такое 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.