基于Futex的锁定机制

时间:2010-09-24 12:15:00

标签: linux synchronization locking centos futex

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

具体来说,您可以查看this code

答案 2 :(得分:0)

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

代码示例:这些是在2010年的这篇文章的几个月内完成的,但仍然是最新的。

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

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