码迷,mamicode.com
首页 > 其他好文 > 详细

无锁-CAS原子操作

时间:2015-10-04 01:38:21      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

CAS原子操作——Compare & Set,或是 Compare & Swap,现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是 CMPXCHG 汇编指令。

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

   相对与      加锁......速度有提高

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

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

无锁-CAS原子操作

标签:

原文地址:http://my.oschina.net/u/1176110/blog/513397

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!