免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: VIP_fuck

[C++] 请教一个c++11 memory-ordering 的问题 [复制链接]

论坛徽章:
0
发表于 2016-11-07 14:28 |显示全部楼层
本帖最后由 TiGEr.zZ 于 2016-11-07 14:38 编辑

lock-free的真正意思是lockup-free,就是系统不会锁死的的意思,翻译起来比较困难(其实老外初见这个单词也一样理解困难),可以就叫无锁好了,实际上也的确没有锁。wait-free就是字面上的意思,先有的wait-free定义,然后同时另外一个人就顺便取了个lock-free的名字。lock-free包含wait-free。历史上曾经认为lock-free实现很难,效率也不一定高,所以后来又捣鼓了一个obstruction-free,这也可以从字面上理解,就是挂起的线程不会阻塞其他线程执行。实际上通用lock-free实现并不难,并且可以预见效率通常会超过obstruction-free。obstruction-free包含lock-free和wait-free,这三个层面上都没有显式的锁。

论坛徽章:
9
程序设计版块每日发帖之星
日期:2015-10-18 06:20:00程序设计版块每日发帖之星
日期:2015-11-01 06:20:00程序设计版块每日发帖之星
日期:2015-11-02 06:20:00每日论坛发贴之星
日期:2015-11-02 06:20:00程序设计版块每日发帖之星
日期:2015-11-03 06:20:00程序设计版块每日发帖之星
日期:2015-11-04 06:20:00程序设计版块每日发帖之星
日期:2015-11-06 06:20:00数据库技术版块每周发帖之星
日期:2015-12-02 15:02:47数据库技术版块每日发帖之星
日期:2015-12-08 06:20:00
发表于 2016-11-07 14:35 |显示全部楼层
本帖最后由 wlmqgzm 于 2016-11-09 22:23 编辑

回复 12# lxyscls
boost::spsc_queue是wait_free的,  如果是Boost多生产者或者多消费者无锁队列,Boost库的lock_free就不是wait_free的

只是(1)boost::spsc_queue限制太多, 只支持常规变量,例如整数之类的, 不支持shared_ptr等各类对象
(2)性能要比自己写的低很多 ,  目前公司的 wait_free_queue性能是  数亿TPS  双向数据调度能力
(3)不支持mpsc/spmc 多生产者或者多消费者 wait_free
(4)功能太少,生产者生产后, 无法通知消费者处理, 消费者处理后不自动通知或者回调生产者
(5)与Boost::asio:io_service没有集成, 无法集中处理CPU资源的申请和释放


论坛徽章:
12
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之同曦
日期:2017-03-17 19:13:162016科比退役纪念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16赛季CBA联赛之福建
日期:2016-01-14 12:49:22程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:002015年亚洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役纪念章
日期:2018-04-10 16:20:18
发表于 2016-11-07 14:48 |显示全部楼层
回复 21# TiGEr.zZ


解释很清晰,多谢多谢。

我也觉得 lock-free 好像并没有很难实现,就是有些地方可能一时会没想到,比如异常处理之类的,不过这跟并行本身貌似没关系。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP