C++ master/worker

Jas*_*ele 5 c++ concurrency multithreading threadpool

我正在寻找跨平台的C++主/工作库或工作队列库.一般的想法是我的应用程序将创建某种Task或Work对象,将它们传递给工作主服务器或工作队列,这反过来又会在单独的线程或进程中执行工作.为了提供一些上下文,应用程序是一个CD开膛手,我想要并行化的任务是"rip track","将WAV编码为Mp3"等.

我的基本要求是:

  • 必须支持可配置数量的并发任务.
  • 必须支持任务之间的依赖关系,以便在完成所有依赖的任务之前不执行任务.
  • 必须允许取消任务(或者至少不能阻止我将取消编码到我自己的任务中).
  • 必须允许将状态和进度信息报告回主应用程序线程.
  • 必须适用于Windows,Mac OS X和Linux
  • 必须是开源的.

如果这个库也是特别好的:

  • 与Qt的信号/插槽机制集成.
  • 支持使用线程进程来执行任务.

通过类比,我正在寻找类似于Java的ExecutorService或其他类似的线程池库,但是在跨平台的C++中.有谁知道这样的野兽?

谢谢!

rlb*_*ond 2

我认为这需要英特尔的线程构建模块,它几乎可以满足您的需求。