C ++ master / worker

Szukam wieloplatformowej biblioteki master / worker C ++ lub biblioteki kolejek roboczych. Ogólna idea polega na tym, że moja aplikacja utworzy jakiś rodzaj obiektów zadań lub pracy, przekaże je do wzorca roboczego lub kolejki roboczej, która z kolei wykona pracę w osobnych wątkach lub procesach. Aby zapewnić odrobinę kontekstu, aplikacja to ripper CD, a zadania, które chcę równolegle wykonywać, to „rip track”, „encode WAV do Mp3” itp.

Moje podstawowe wymagania to:

Musi obsługiwać konfigurowalną liczbę równoczesnych zadań.Musi obsługiwać zależności między zadaniami, tak aby zadania nie były wykonywane, dopóki nie zostaną ukończone wszystkie zadania, od których one zależą.Musi umożliwiać anulowanie zadań (lub przynajmniej nie uniemożliwiać mi anulowania kodowania w moich własnych zadaniach).Musi umożliwiać raportowanie informacji o statusie i postępie z powrotem do głównego wątku aplikacji.Musi działać w systemach Windows, Mac OS X i LinuxMusi być open source.

Byłoby szczególnie miło, gdyby ta biblioteka również:

Zintegrowany z mechanizmem sygnału / gniazda Qt.Obsługiwane użycie wątkówlub procesy wykonywania zadań.

Analogicznie, szukam czegoś podobnego do Java ExecutorService lub innej podobnej biblioteki puli wątków, ale w C ++ na wielu platformach. Czy ktoś wie o takiej bestii?

Dzięki!

questionAnswers(6)

yourAnswerToTheQuestion