免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: voipexplore
打印 上一主题 下一主题

std::string多线程下为什么不coredump? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-07-31 14:05 |只看该作者
晕倒
pthread_mutex_lock(&fastmutex);
pthread_mutex_unlock(&fastmutex);
这个不就是加解锁吗,string的性能比它高,不能说明string内部没有使用加解锁吗?

malloc有无加解锁操作先不说,它的性能的确低于加解锁操作,是不是加锁,不敢说,没看malloc子系统源码。

论坛徽章:
0
12 [报告]
发表于 2008-07-31 14:11 |只看该作者
恩,两位可能误会了。shan_ghost所说的锁是广义的锁,包括了用CPU的原子指令实现的锁。而voipexplore所说的锁大概专指pthread_mutex_lock

论坛徽章:
0
13 [报告]
发表于 2008-07-31 14:14 |只看该作者
我在同一个平台上,如果std下面的内存池真的有比pthread_mutex还高效的锁机制,那么pthread_mutex还有什么存在的意义。在其它的内存池上也没有发现更高效的锁机制迹象?
非常的纳闷,是想看源码,遍地的宏,走进去差点没出来。

所以我的问题就是std::string 如何实现的线程安全?

论坛徽章:
0
14 [报告]
发表于 2008-07-31 14:17 |只看该作者
这种锁的"高效"的原因是因为直接在用户态使用了CPU的指令,比如__gthread_mutex_lock用了x86的xchg。
在没有CPU支持下就只能用pthread_mutex_lock了,比如arm-linux的STL.

论坛徽章:
8
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:58技术图书徽章
日期:2013-12-04 10:48:50酉鸡
日期:2014-01-03 10:32:30辰龙
日期:2014-03-06 15:04:07
15 [报告]
发表于 2008-07-31 14:22 |只看该作者
[这个链接据说有病毒?编辑掉……]

锁的根本原理在于原子操作指令;但在不同的应用场合,有许多不同的具体实现。

[ 本帖最后由 shan_ghost 于 2008-7-31 14:50 编辑 ]

论坛徽章:
0
16 [报告]
发表于 2008-07-31 14:30 |只看该作者
楼上的链接里很多病毒。
2.6内核线程库提供的锁还是pthread_mutex,这点有库保证.
当前只能接收"它使用CPU了支持的特殊汇编的指令"这个说法了.

这种特定平台下高效的锁机制,没有被线程库使用,并且平时的使用种很少听到这种用法,其它的内存池也没有使用过,这个现象还是有点不正常呐.

论坛徽章:
0
17 [报告]
发表于 2008-07-31 14:33 |只看该作者

回复 #16 voipexplore 的帖子

不会吧,win32上的InterlockedIncrement, posix的atomic_inc都是这样实现的啊。

[ 本帖最后由 jigloo 于 2008-7-31 14:36 编辑 ]

论坛徽章:
0
18 [报告]
发表于 2008-07-31 14:37 |只看该作者
posix的atomic_inc??
孤陋寡闻了,怎么使用它.怎么man不到呢

有了它,phread_mutex还有什么存在的必要吗?
多谢指点.

论坛徽章:
0
19 [报告]
发表于 2008-07-31 14:44 |只看该作者
atomic_inc在atomic.h里面啊。
pthread_mutex_lock可移植性好啊,每个平台都能用。

论坛徽章:
0
20 [报告]
发表于 2008-07-31 14:47 |只看该作者
ok 多谢.
能提供线索,其它的就能baidu google了
可以封装下,能支持atomic_inc就atomic_inc,否则再pthread_mutex_lock.
多谢,有时间测试证明下,我这个平台上的std是否就是atomic_inc的原因.暂时要忙了,来不及测试回帖.
以后会再来回帖的.
多谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP