我们正在考虑为 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/