2

有人可以告诉我一个使用基于 futex 的锁定机制的例子吗?(适用于多核 x86 CPU、CentOS)

4

3 回答 3

2

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

于 2010-09-24T13:08:52.150 回答
0

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

具体来说,您可以检查此代码

于 2012-12-10T12:50:17.530 回答
0

工作示例:pthreads 互斥锁使用 futex 锁。

代码示例:这些是在 10 年发表这篇文章后的几个月内制作的,但仍然是最新的。

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

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

于 2013-12-13T19:09:27.180 回答