Что такое AtomicInteger и зачем он нужен?

Middle
340 просмотров
AFK Offer AI

AtomicInteger — потокобезопасный integer без блокировок. Операции incrementAndGet(), compareAndSet(), getAndAdd() атомарны через CAS (compare-and-swap) на уровне процессора. Быстрее synchronized для простых счётчиков, потому что нет context switch-ей. Есть AtomicLong, AtomicBoolean, AtomicReference. Для high-contention счётчиков LongAdder быстрее AtomicLong — использует распределение по ячейкам (striping). AtomicReference — CAS для объектных ссылок, основа lock-free структур данных.

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

Что такое eventual consistency и как с ней жить в микросервисах?