CAS机制

知识点助记

可以把CAS比作去停车场停车

  • 车位状态牌 = 内存中的值(V)
  • 你看到的空位 = 预期值(A)
  • 你的车 = 新值(B)
  • 管理员 = CPU的原子指令

只有当你亲眼看到车位是空的(A=V)才能把自己的车停进去(V=B)。这期间被别人抢先就要重新观察

解析

CAS(Compare-And-Swap)是CPU提供的原子指令。顾名思义:比较并交换。

CAS属于乐观锁的一种实现方式,主要就是为了解决synchronized等锁机制会导致线程阻塞/唤醒的性能消耗

它在并发下是没有锁的,线程不阻塞,可以通过重试来解决冲突

使用

Redis实现防止商品超卖