首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FUTEX_WAIT和FUTEX_WAIT_PRIVATE有什么区别?

FUTEX_WAIT和FUTEX_WAIT_PRIVATE有什么区别?
EN

Stack Overflow用户
提问于 2012-04-03 05:00:44
回答 1查看 41K关注 0票数 32

我一直在使用strace跟踪一个进程,并看到了如下条目:

代码语言:javascript
复制
futex(0x7ffff79b3e00, FUTEX_WAKE_PRIVATE, 1) = 1                                                                
futex(0x7ffff79b3e00, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 

但是,当我查看man page for futex时,我只看到了诸如FUTEX_WAITFUTEX_WAKE之类的条目。所以我的问题是,在我的strace输出中,附加到这些名称末尾的_PRIVATE是什么意思?例如,futex手册页中记录的FUTEX_WAKE和我在strace输出中看到的FUTEX_WAKE_PRIVATE之间有什么不同,或者当我试图理解正在调试的程序发生了什么情况时,我可以假设它们是相同的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-03 05:10:49

这是一个由linux/glibc完成的优化,用于在进程之间不共享futexes时使它们更快。除非在互斥锁上设置了PTHREAD_PROCESS_SHARED属性,否则Glibc将使用每个futex调用的_PRIVATE版本

这里有更详细的解释:http://lwn.net/Articles/229668/

出于调试的目的,您可以忽略_PRIVATE后缀

票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9983765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档