2013-07-13 87 views
2

是否有可能实现完全等待并且可以同时支持多个编写者和读者的并发队列?我知道我可以使用互斥锁或现有的库,但我真的想要实现它本人。任何想法?C++中的等待队列实现

+0

Boost实现迈克尔 - 斯科特队列自1.53我认为。 –

+0

我有一个消费者单生产者班的设计,这项工作? (我非常确定任意数量的消费者,生产者在没有互斥体的情况下不可行) –

+0

线程构建块(TBB)包含多个线程安全容器。 – alexbuisson

回答

8

您可以找到一个等待队列,用于多个入队队列和出队队列here,但正如@David Schwartz所说,这不一定更快,只是因为没有等待。 This是关于等待免队列的另一篇文章。 在这些论文的参考文献中,您还可以找到其他基于数组的提议队列,这意味着它们的容量有限,但它们比基于列表的速度更快。

如果您正在寻找一个实用的解决方案,迈克尔和斯科特的无锁队列可能是一个不错的选择。

如果您想了解更多信息并亲身体验一下Here,您可以找到可能的备选方案的简历,并且有几个代码示例。