是否有一个 c++ 多线程库,其中有一个队列可以包含必须等待其他作业完成的作业。线程池正在处理队列中的所有作业。
我想编写一个多线程 c++ 程序来生成和使用放置在队列中的作业,只有当其他一些作业已经处理时,才能处理其中的一些作业。
类似于在 qsub(网格队列管理器)中,您可以将作业放入队列中,并且必须保持直到其他作业完成。
是否有一个 c++ 多线程库,其中有一个队列可以包含必须等待其他作业完成的作业。线程池正在处理队列中的所有作业。
我想编写一个多线程 c++ 程序来生成和使用放置在队列中的作业,只有当其他一些作业已经处理时,才能处理其中的一些作业。
类似于在 qsub(网格队列管理器)中,您可以将作业放入队列中,并且必须保持直到其他作业完成。
找到了我要找的东西:
在英特尔线程构建模块中实现的任务窃取: http ://en.wikipedia.org/wiki/Intel_Threading_Building_Blocks
您可能想研究所谓的信号量。 http://en.wikipedia.org/wiki/Semaphore_(编程)
例如,您可以使用 Boost Threading 模块编写信号量。我希望这可以帮助您解决问题。
看看 Herb Sutter 的这个演讲。他给出了一个 C++11 风格工作的实现。