Thread - Pool? Manager?
-
Ich bin grad nicht sicher wonach ich genau suchen soll.
Folgendes vereinfachtes Problem: Ich habe x Aufgaben von denen maximal y Aufgaben parallel bearbeitet werden soll.Bisher habe ich das sehr simpel gehalten und jeweils max y Aufgaben aus x genommen und mit boost threads parallel gelöst. Waren alle y Aufgaben gelöst, wurden wieder max y aus dem Rest von x entnommen und verarbeitet, bis letztlich alle x Aufgaben gelöst waren.
Nun ist es aber so, dass sich die Aufgaben in der Bearbeitungsdauer stark variieren und ggf. y-1 Threads idlen, weil noch auf die Lösung der letzten Aufgabe von y gewartet wird, obwohl die y-1 threads schon neue Aufgaben lösen könnten.
Mit welchem Konstrukt löst man sowas am besten? Biete boost da etwas an? Die Thread-Group macht ja im Wesentlichen das, was ich auch schon mache, wenn ich das richtig sehe. Vermutlich brauch ich nur das richtige Schlüsselwort nachdem ich googlen kann.
Nichts für ungut,
SirAnn
-
Steck die Aufgaben in eine Queue, und starte Y Worker die sich selbständig Aufgaben aus der Queue holen.
-
hustbaer schrieb:
Steck die Aufgaben in eine Queue, und starte Y Worker die sich selbständig Aufgaben aus der Queue holen.
Ist heut wohl nicht mein Tag. Klingt zu einfach
