Что такое CAS-операция?

Senior
199 просмотров
AFK Offer AI

CAS (Compare-And-Swap) — атомарная процессорная инструкция: "если текущее значение == ожидаемому, замени на новое". Если другой поток уже изменил значение — CAS fail, и ты повторяешь (spin loop). Это основа lock-free алгоритмов — нет блокировок, нет context switch. AtomicInteger.compareAndSet(), ConcurrentHashMap, ConcurrentLinkedQueue — всё на CAS. Проблема ABA: значение было A, стало B, снова A — CAS не заметит. Решение: AtomicStampedReference добавляет версию.

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

Что такое bytecode verification и зачем JVM это делает?