我正在寻找一个跨平台的 C++ master/worker 库或工作队列库。一般的想法是,我的应用程序将创建某种任务或工作对象,将它们传递给工作主机或工作队列,然后它们将在单独的线程或进程中执行工作。为了提供一些上下文,该应用程序是一个 CD ripper,我想要并行化的任务是“rip track”、“encode WAV to Mp3”等。
我的基本要求是:
- 必须支持可配置数量的并发任务。
- 必须支持任务之间的依赖关系,这样任务在它们所依赖的所有任务都完成之前不会执行。
- 必须允许取消任务(或者至少不阻止我将取消编码到我自己的任务中)。
- 必须允许将状态和进度信息报告回主应用程序线程。
- 必须在 Windows、Mac OS X 和 Linux 上工作
- 必须是开源的。
如果这个库也能:
- 与 Qt 的信号/槽机制集成。
- 支持使用线程或进程来执行任务。
打个比方,我正在寻找类似于 Java 的 ExecutorService 或其他一些类似的线程池库的东西,但在跨平台 C++ 中。有人知道这样的野兽吗?
谢谢!