クロスプラットフォームの C++ マスター/ワーカー ライブラリまたはワーク キュー ライブラリを探しています。一般的な考え方は、私のアプリケーションがある種の Task または Work オブジェクトを作成し、それらを作業マスターまたは作業キューに渡し、それが別のスレッドまたはプロセスで作業を実行するというものです。少しコンテキストを提供するために、アプリケーションは CD リッパーであり、並列化したいタスクは「トラックのリッピング」、「WAV から Mp3 へのエンコード」などです。
私の基本的な要件は次のとおりです。
- 構成可能な数の同時タスクをサポートする必要があります。
- 依存するすべてのタスクが完了するまでタスクが実行されないように、タスク間の依存関係をサポートする必要があります。
- タスクのキャンセルを許可する必要があります (または、少なくともキャンセルを自分のタスクにコーディングすることを妨げないでください)。
- ステータスと進行状況の情報をメイン アプリケーション スレッドに報告できるようにする必要があります。
- Windows、Mac OS X、および Linux で動作する必要があります
- オープンソースでなければなりません。
このライブラリも次の場合は特に便利です。
- Qt のシグナル/スロット メカニズムと統合されています。
- タスクを実行するためのスレッドまたはプロセスの使用をサポートしました。
類推として、私は Java の ExecutorService または他の同様のスレッド プーリング ライブラリに似たものを探していますが、クロスプラットフォームの C++ です。そのような獣を知っている人はいますか?
ありがとう!