您现在的位置:首页 --> 查看专题: 数据共享
当我们在修改数据结构中某个副本时,为了修改过程的原子性,我们需要复制一个副本出来,修改,然后利用 CAS 交换到主干上。这个过程中,其它读线程,可能引用老的版本,读完后就需要销毁掉过期的版本。在有 GC 机制的语言中这非常简单。但是在 C/C++ 这种手动管理内存的条件下,几乎变得不可能。对,我们可以用引用计数来管理。但难点在于引用记数本身需要放在对象上,那么改写引用值却需要获得对象本身先,这个变成了绕不过去的死结。在并发条件下,如果你不使用锁,那么获得对象指针后,到操作引用记数之间,无法确保对象不在那一刻被其它线程减少引用而销毁掉。
[ 共1篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
-
[1197] WordPress插件开发 -- 在插件使用 -
[87] IOS安全–浅谈关于IOS加固的几种方法 -
[48] 读书笔记-壹百度:百度十年千倍的29条法则 -
[34] 关于IO的同步,异步,阻塞,非阻塞 -
[31] IP团伙行为分析(更新中文版报告) -
[30] 页面停留时间和网站停留时间详解 -
[26] iTerm2 (Mac Terminal) -
[25] Rax 系列教程(长列表) -
[24] 解决Ubuntu播放器快进问题 -
[22] 微博架构与平台安全演讲稿
赞助商广告