我们正在构建一个极其延迟敏感的应用程序。 我们的完整应用程序在锁定过程中需要大约2500个时钟周期,并且需要获取和释放两个锁定。 我们预计99.98%的时间没有争用。 使用pthread锁定和解锁需要大约1800个额外的周期。 更快的配方中的任何指针? 基于原子操作编写锁可能很棘手。 我们希望在Linux头文件中使用标准代码,或者尽可能使用boost头文件。
答案 0 :(得分:2)
作为建议,请尝试Intel's Threading Building Blocks library中的spin_mutex
。它是开源的(GPLv2),因此您还可以检查源的实现细节。
答案 1 :(得分:1)
您没有太多选择。 Pthread库尽可能通用。如果你使它更具体,那么就会有更少的人使用它,因此每个人最终都会实现自己的,弄得一团糟。
我担心你必须自己编写,特别适合你的要求。我建议将其视为阅读: http://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html
我自己正在读它。