草庐IT

FUTEX_REQUEUE

全部标签

c - futex_ 是什么意思?

我的应用程序突然停止工作。然后我执行了以下命令,#ps-elf|grepaeroServ得到以下输出,#0Sbinunun563423000800-7781futex_15:41pts/000:00:04我能感觉到的是,应用程序没有运行,但我不明白进程现在处于哪个状态。有好心人解释一下吗。 最佳答案 这是ps输出的WCHAN列。正如手册页所说:nwchanWCHANaddressofthekernelfunctionwheretheprocessissleeping(usewchanifyouwantthekernelfunctio

c++ - Linux/Unix 中的 futex 有什么等价物吗?

我正在寻找可用于polling的东西(例如select、kqueue、epoll,即不是忙轮询)在C/C++中。换句话说,我需要阻塞一个线程,然后在另一个线程中以尽可能少的开销唤醒它。mutex+条件变量可以工作,但是开销很大。futex也可以,但这仅适用于Linux(或者可能不是?)。只要polling本身正常工作,就不需要额外的同步,例如当我在两个线程中调用wait和wake时没有比赛。编辑:如果FreeBSD中不存在这样的“工具”,如何使用C++11内置类型和系统调用创建一个?Edit2:由于这个问题已迁移到SO,我想让它更通用(仅适用于FreeBSD)

c - 为什么 pthread 互斥锁被认为是 "slower"而不是 futex?

为什么POSIX互斥锁被认为比futexes更重或更慢?pthread互斥锁类型的开销来自哪里?我听说pthread互斥体是基于futexes的,当没有争议时,不要对内核进行任何调用。看来pthread互斥锁只是futex的“包装器”。是否只是函数包装调用中的开销以及互斥函数“设置”futex的需要(即,基本上是为pthread互斥函数调用设置堆栈)?还是pthread互斥体发生了一些额外的内存屏障步骤? 最佳答案 创建Futex是为了提高pthread互斥体的性能。NPTL使用futexes,LinuxThreads早于futex