无锁-CAS原子操做

CAS原子操做——Compare & Set,或是 Compare & Swap,如今几乎全部的CPU指令都支持CAS的原子操做,X86下对应的是 CMPXCHG 汇编指令。atom

你们应该还记得操做系统里面关于“原子操做”的概念,一个操做是原子的(atomic),若是这个操做所处的层(layer)的更高层不能发现其内部实现与结构。原子操做能够是一个步骤,也能够是多个操做步骤,可是其顺序是不能够被打乱,或者切割掉只执行部分。有了这个原子操做这个保证咱们就能够实现无锁了。spa

   相对与      加锁......速度有提升操作系统

         场景:多个变量同步原子update,且线程竞争比较激烈的状况下,cpu消耗较严重的。线程

         问题:ABA一个线程修改V值假设原来是A,先修改为B,再修改回成A。当前线程的CAS操做没法分辨当前V值是否发生过变化orm

相关文章
相关标签/搜索