基于互斥体的locking机制

有人可以告诉我一个基于futex的locking机制的例子吗? (对于x86 CPU,CentOS)

Pthreads的互斥体是在最新版本的Linux上使用futexes实现的。 Pthreads是Linux上的标准C线程API,是Posix标准的一部分,因此您可以轻松地将程序移植到其他类Unix系统。 你应该避免直接使用futex,除非你有非常不寻常的需求,因为它们很难正确使用 – 使用pthreads,或者更高级别的语言特定的API(几乎肯定会使用pthreads本身)。

看看https://github.com/avsm/ipc-bench 。 他们在共享内存管道实现中使用futex。

具体来说,你可以检查这个代码 。

工作示例:pthreads mutex使用futex锁。

代码示例:这些是在10年的这个帖子的几个月内完成的,但是仍然是最新的。

http://meta-meta.blogspot.com/2010/11/linux-threading-primitives-futex.html https://github.com/lcapaldo/futexexamples

用例示例:IPC和进程间同步是为什么用户在用户空间中使用futex的唯一示例。 除了极端的情况外,pthread互斥锁将适用于多线程,但是多进程在高性能锁机制和锁类型方面都是缺乏的。