Compare-And-Swap (CAS) — это атомарная инструкция на уровне процессора, которая обновляет значение регистра только если оно совпадает с ожидаемым текущим значением. Это альтернатива традиционным механизмам синхронизации.
Операция принимает три аргумента:
Процессор сравнивает ожидаемое значение с фактическим. Если они совпадают, новое значение записывается атомарно. Если нет — операция завершается без изменений.
Представь два треда, работающих с общей переменной:
CAS реализует оптимистичную блокировку, которая исходит из того, что конфликты редки:
CAS-операции неблокирующие и атомарные на уровне железа, что делает их эффективнее синхронизации на основе мьютексов при низком contention.
CAS операция требует три входа: адрес в памяти, ожидаемое значение и новое значение, и она атомарно обновит адрес в памяти только если ожидаемое значение совпадает с текущим значением.
Новый — ещё не проверен сообществом
Вы