C ++ мастер / работник

Я ищу кросс-платформенную C ++ мастер / рабочую библиотеку или библиотеку рабочей очереди. Общая идея заключается в том, что мое приложение будет создавать какие-либо объекты Task или Work, передавать их в мастер-работу или рабочую очередь, которые, в свою очередь, будут выполнять работу в отдельных потоках или процессах. Чтобы обеспечить немного контекста, приложение представляет собой риппер компакт-диска, а задачи, которые я хочу распараллелить, - это такие вещи, как «рип трек», «кодирование WAV в Mp3» и т. Д.

Мои основные требования:

Must support a configurable number of concurrent tasks. Must support dependencies between tasks, such that tasks are not executed until all tasks that they depend on have completed. Must allow for cancellation of tasks (or at least not prevent me from coding cancellation into my own tasks). Must allow for reporting of status and progress information back to the main application thread. Must work on Windows, Mac OS X, and Linux Must be open source.

Было бы особенно хорошо, если бы эта библиотека также:

Integrated with Qt's signal/slot mechanism. Supported the use of threads or processes for executing tasks.

По аналогии, я ищу что-то похожее на ExecutorService Java или какую-то другую подобную библиотеку пула потоков, но в кроссплатформенном C ++. Кто-нибудь знает такого зверя?

Спасибо!

Ответы на вопрос(6)

Ваш ответ на вопрос