c++ - 本土工作队列与英特尔 TBB

标签 c++ c multithreading gcc tbb

我们正在考虑为 C/C++ 使用哪个并行框架。我们有一些非常特殊的条件,不能 100% 确定,例如TBB 可以添加“更多”内容。

  • N 个运行线程和一个同步工作队列(使用 pthread 互斥量)。
  • 我们的工作具有优先级 (int)。
  • 作业被放入队列,空闲线程获得优先级最高的作业。

重复此过程直到队列为空。

好吧,现在,我想知道 TBB(线程构建 block )之类的框架是否可以为这种特殊情况提供更多功能算法观点?? (所以,内部...)

最佳答案

TBB 4 提供了一个 concurrent_priority_queue(在 reference manual 中搜索“priority”)。此外,如果您可以在设计程序时考虑到任务而不是线程,那么使用 TBB 是很好的选择。事实上,它提供了很多东西来描述任务之间的依赖关系。此外,如果 TBB 对您很重要,它似乎是相当便携的。

关于c++ - 本土工作队列与英特尔 TBB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8386641/

相关文章:

c++ - 如何将 DOMDocument 从 VBA 传递到 C++ dll

c++ - 设计: Large archive file editor,文件映射

c++ - "the procedure entry point _ZNSt8_detail15_List_node_base7_M_hookEPS0_ could not be located in the dynamic link library libstdc -6.dll."

c - 如何在C中正确反转单链表?

c# - C# 中的密集文件 I/O 和数据处理

java - Spring ThreadPoolTask​​Executor 中的 corePoolSize 和 maxPoolSize 有什么区别

c++ - 使用模板重载运算符,但防止重新定义

编译器提示 '/226 error in C' 引用代码中的减号

c - Apache2源代码中的 'module'是什么?

c# - .NET 框架中的线程生命周期