3

我们正在构建一个对延迟非常敏感的应用程序。我们的完整应用程序在一个进程中除了锁定之外大约需要 2500 个时钟周期,并且需要获取和释放两个锁。我们预计 99.98% 的时间不会发生争用。使用 pthread 锁定和解锁需要大约 1800 个额外的周期。更快的配方有什么指示吗?基于原子操作编写锁可能很棘手。如果可能,我们更喜欢使用 Linux 标头中的标准代码或提升标头。

4

2 回答 2

2

作为建议,请尝试spin_mutex使用Intel 的 Threading Building Blocks library。它是开源的 (GPLv2),因此您还可以检查源代码以了解实现细节。

你也可以看看这个:我的自旋锁实现是否正确和最优?

于 2011-07-20T20:59:03.527 回答
1

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

恐怕你必须自己写,这特别适合你的要求。我建议阅读: http: //kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html

我自己在读。

于 2012-06-19T22:58:48.923 回答