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

Middle
313 просмотров
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 структур данных.

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

Что такое optimistic locking через @Version в JPA?