1

是否有一个 c++ 多线程库,其中有一个队列可以包含必须等待其他作业完成的作业。线程池正在处理队列中的所有作业。

我想编写一个多线程 c++ 程序来生成和使用放置在队列中的作业,只有当其他一些作业已经处理时,才能处理其中的一些作业。

类似于在 qsub(网格队列管理器)中,您可以将作业放入队列中,并且必须保持直到其他作业完成。

4

3 回答 3

3

找到了我要找的东西:

在英特尔线程构建模块中实现的任务窃取: http ://en.wikipedia.org/wiki/Intel_Threading_Building_Blocks

于 2013-02-04T20:13:08.177 回答
0

您可能想研究所谓的信号量。 http://en.wikipedia.org/wiki/Semaphore_(编程)

例如,您可以使用 Boost Threading 模块编写信号量。我希望这可以帮助您解决问题。

于 2013-02-04T18:32:09.793 回答
0

看看 Herb Sutter 的这个演讲。他给出了一个 C++11 风格工作的实现。

Herb Sutter - C++ 并发

于 2013-02-04T22:17:23.453 回答