注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

ABA的问题  

2014-09-23 14:00:11|  分类: C++(VC)编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

ABA的问题

在前面的CAS和无锁编程中,提到了ABA问题。这个问题在网上搜索了一下,确实有很多人再问。看了看是人总结的结果,其实可以简单的认为是这样:

一个volatile在操作的过程中,先是被线程一使用,然后被线程二修改,然后再线程一再次调用前将其又修改回原来的值,所以就是ABA。你可以认为是A那个值还是那个值,但已经不是原来的A了。这个东西如果用C++里的指针就说明的非常清楚了。如果你的指针值没修改回来了,但是你的指针指向的内容被修改了,你说咋办?咋办?

所以说,这里又提出了DCAS这个概念,在上面的博文中也说过了,这在C++里使用还是有一些难度的。一不小心不会出现大问题。但在JAVAC#这类语言中,由于具有垃圾回收机制,那么你可以动态的不断的创建A,而不重用这个A,(也就是说,两个人虽然长得一样,但不是同一个人。),就不会有这种ABA的问题了。

努力呵。

  评论这张
 
阅读(326)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017