免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3626 | 回复: 10
打印 上一主题 下一主题

听说有lock free reference count这种东西 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-27 15:11 |只看该作者 |倒序浏览
怎么实现的呢
各位兄弟可否给一点线索, tks!

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
2 [报告]
发表于 2009-08-27 17:07 |只看该作者

回复 #1 群雄逐鹿 的帖子

lock free挺火, 网上应该一搜一大堆

论坛徽章:
0
3 [报告]
发表于 2009-08-27 17:17 |只看该作者
用cpu指令原语来实现, 有很多种可实现lockfree的原语。

最流行的也是最通用的应该属 cas cas2

一般如果你无法确定你的代码跑在生命cpu上, 是intel的还是moto的, 是32bit or 64bit的。等。

最好别用这种技术。

论坛徽章:
0
4 [报告]
发表于 2009-08-27 17:21 |只看该作者
google刚才搜了下,第一个就是个PDF文档

论坛徽章:
0
5 [报告]
发表于 2009-08-27 17:34 |只看该作者

回复 #3 xhl 的帖子

那这样说到底要靠一条特殊指令,
还以为可以靠某个特殊算法实现。:wink:

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
6 [报告]
发表于 2009-08-27 18:12 |只看该作者

回复 #3 xhl 的帖子

-------- -------- -------- -------- 使用CVS: -------- -------- -------- --------
file.lock();
file.modify();
file.unlock();

-------- -------- -------- -------- 使用SVN:-------- -------- -------- --------
只管修改便是……

1. 提交时, 如果没其他人修改, ok, 你很幸运。

2. 如果有其他人修改了……  那么不幸的事发生了:
do {
    SVN::Update();     // get a copy
    file.modify();
    SVN::Resolved();
} while (no_conflict==SVN::Commit() )


lock-free 是类似这样的技术吗???

论坛徽章:
0
7 [报告]
发表于 2009-08-27 18:40 |只看该作者
原帖由 群雄逐鹿 于 2009-8-27 17:34 发表
那这样说到底要靠一条特殊指令,
还以为可以靠某个特殊算法实现。:wink:



是原语, 不是指令。 贴段我之前写过的一个lockfreefifo.

cu这个贴代码的东西, 太不好用了。 发个连接把

http://libigame.googlecode.com/s ... lude/LockFreeFifo.h

论坛徽章:
0
8 [报告]
发表于 2009-08-27 18:52 |只看该作者

回复 #7 xhl 的帖子

有点意思,谢谢~
要有算法能代替这个就好了 lock cmpxchg [ecx], ebx
看似不可能

论坛徽章:
0
9 [报告]
发表于 2009-08-27 18:55 |只看该作者
原帖由 群雄逐鹿 于 2009-8-27 18:52 发表
有点意思,谢谢~
要有算法能代替这个就好了 lock cmpxchg [ecx], ebx
看似不可能



这段代码必须确定在什么cpu上运行, 才可以大胆使用。 否则容易出问题。

其实是利用cpu的原子操作。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
10 [报告]
发表于 2009-08-28 11:01 |只看该作者
弱弱地问一下,7L的代码真的没问题吗?GCC的asm里面用的是ptr,而VC的asm用的是_ptr,特别的,参数的名字是_ptr……

看来CAS就是Condition & Assign,对不?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP