C ++ Master / Worker

Ich suche eine plattformübergreifende C ++ - Master / Worker-Bibliothek oder eine Arbeitswarteschlangenbibliothek. Die allgemeine Idee ist, dass meine Anwendung irgendeine Art von Aufgaben- oder Arbeitsobjekten erstellt und diese an den Arbeitsmaster oder die Arbeitswarteschlange weiterleitet, die wiederum die Arbeit in separaten Threads oder Prozessen ausführen. Um ein wenig Kontext bereitzustellen, ist die Anwendung ein CD-Ripper, und die Aufgaben, die ich parallelisieren möchte, sind Dinge wie "Spur rippen", "WAV in MP3 codieren" usw.

Meine Grundvoraussetzungen sind:

Muss eine konfigurierbare Anzahl von gleichzeitigen Aufgaben unterstützen.Abhängigkeiten zwischen Tasks müssen unterstützt werden, sodass Tasks erst ausgeführt werden, nachdem alle Tasks, von denen sie abhängig sind, abgeschlossen wurden.Muss das Abbrechen von Aufgaben ermöglichen (oder muss mich zumindest nicht daran hindern, das Abbrechen in meine eigenen Aufgaben zu kodieren).Muss die Rückmeldung von Status- und Fortschrittsinformationen an den Hauptanwendungsthread ermöglichen.Muss unter Windows, Mac OS X und Linux funktionierenMuss Open Source sein.

Es wäre besonders schön, wenn diese Bibliothek auch:

Integriert in den Signal- / Schlitzmechanismus von Qt.Unterstützt die Verwendung von Threadsoder Prozesse zur Ausführung von Aufgaben.

Analog suche ich nach etwas ähnlichem wie Javas ExecutorService oder einer ähnlichen Thread-Pooling-Bibliothek, jedoch in plattformübergreifendem C ++. Kennt jemand so ein Biest?

Vielen Dank!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage