TBB并发队列使用示例

4
英特尔线程构建块库包括一个concurrent_queue容器。
不幸的是,在互联网上搜寻并没有找到TBB库中使用concurrent_queue的并行示例。
能否提供一个示例,展示队列在多个线程同时弹出和推入项目,直到队列最终为空的情况?

创建类型 Foo;在全局范围内实例化 concurrent_queue<Foo*>;编写两个线程的代码,其中一个循环n次推入 new Foo,然后推入 nullptr;另一个无限循环调用 try_pop(),当它弹出 nullptr 时跳出无限循环(但在退出之前要将 nullptr 再次推入以便其他人能够看到)。在 main() 函数中启动这两个线程(如果需要可以多次启动它们),然后加入它们。这应该足以让你开始工作了。 - DanielKO
1个回答

2
在《Intel线程构建模块设计模式》手册中查找“concurrent_queue”,您会找到一些示例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接