锁定速度比pthreads快

时间:2011-07-16 13:00:27

标签: locking atomic spinlock

我们正在构建一个极其延迟敏感的应用程序。 我们的完整应用程序在锁定过程中需要大约2500个时钟周期,并且需要获取和释放两个锁定。 我们预计99.98%的时间没有争用。 使用pthread锁定和解锁需要大约1800个额外的周期。 更快的配方中的任何指针? 基于原子操作编写锁可能很棘手。 我们希望在Linux头文件中使用标准代码,或者尽可能使用boost头文件。

2 个答案:

答案 0 :(得分:2)

作为建议,请尝试Intel's Threading Building Blocks library中的spin_mutex。它是开源的(GPLv2),因此您还可以检查源的实现细节。

您也可以看一下:Is my spin lock implementation correct and optimal?

答案 1 :(得分:1)

您没有太多选择。 Pthread库尽可能通用。如果你使它更具体,那么就会有更少的人使用它,因此每个人最终都会实现自己的,弄得一团糟。

我担心你必须自己编写,特别适合你的要求。我建议将其视为阅读: http://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html

我自己正在读它。