悲观锁就是认为并发时一定会有冲突发生,采用互斥的策略。比如java中的synchronized。

而乐观锁是假设并发时不会有冲突发生,如果发生冲突,则操作失败,并不断重试。乐观锁的机制就是CAS(Compare and Swap)。

 

大多数的处理器都会实现一个CAS指令。

CAS包含了三个操作数,需要读写的内存位置V,进行比较的值A,和需要写入的新值B。

当且仅当V等于A时,CAS才会通过原子方式用新值B更新V。

它的含义是:我认为V的值应该是A,那么将V的值更新为B,否则不修改并告诉V的实际值是多少。

 

CAS是一项乐观锁技术,它希望可以成功执行更新操作,并且如果有另外一个线程在最近一次检查后更新了该变量。CAS可以检测到这个错误。

相关文章:

  • 2022-12-23
  • 2022-03-01
  • 2021-06-03
  • 2022-12-23
  • 2021-08-11
  • 2022-01-10
  • 2021-05-07
  • 2021-09-16
猜你喜欢
  • 2022-12-23
  • 2021-06-08
  • 2021-09-26
相关资源
相似解决方案