CAS

CAS:Compare and Swap,即比较再交换。一种无锁算法  

  CAS有3个操作数

  1、内存值 :V

  2、复制的内存值,旧值:A

       3、新值: B

if(V == A){
  V = B;  
}

 

步骤:

  1. t1和t2线程都同时去访问内存中同一变量,该变量的值为:  A,  把 A 完全拷贝一份到自己的工作内存空间
  2. t1在与t2线程竞争中线程t1能去更新变量的值
  3. t1线程去更新变量内存的值改为: V
  4. 对于t2来说,内存值变为了:V,与之前拷贝的值:A不一致,就操作失败了

 

 

 

 

posted @ 2020-07-13 15:06  orbc  阅读(57)  评论(0编辑  收藏  举报