专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > AIX

unix中多线程thread_unlock有关问题

发布时间:2011-06-27 19:07:07 文章来源:www.iduyao.cn 采编人员:星星草
unix中多线程thread_unlock问题?
在AIX上,运行一个多线程程序,然后用truss跟踪,发现有thread_unlock与thread_waitlock_函数,但是使用nm test(程序名)|grep thread_unlock 没有发现该函数,检查相应的加载的动态库中也没有thread_unlock函数,这让我感到很困惑,thread_unlock与thread_waitlock_这些函数从何而来?难道是系统自动添加上的thread_unlock加锁操作?
(ps:makefile没有使用-D_THREAD_SAFE与-lpthread
这是truss的部分记录:
0.0008: thread_waitlock_(0x3000A6C0, 1, 0x00000000) = 1
0.0002: thread_unlock(0x3000A6C0) = 1
0.0001: thread_unlock(0x3000A6C0) = 0
0.0002: thread_waitlock_(0x3000A6C0, 1, 0x00000000) = 1
  = 0
0.0001: thread_waitlock_(0x3000A6C0, 1, 0x00000000) = 1
  = 1
0.0005: thread_unlock(0x3000A6C0) = 0


------解决方案--------------------
这两个函数估计不是应用程序自己直接调用的
很可能是某个系统调用,像进程间同步机制(信号灯啥的)间接调用的
------解决方案--------------------
探讨
谢了,这个程序虽是多线程,但是没有使用线程锁函数,难道是线程在申请CPU资源时,自动加锁的?还有个问题,多处理器下,多线程处理性能没有单进程处理性能高,这个正常么?
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: