Wie genau sind Deine Aufgaben organisiert (command pattern)? Wenn Du ohnehin einen Pool von Aufgaben hast (Stapelspeicher, Stack), könnte ein Thread sich an diesen Pool verwenden (Singelton), um die nächste Aufgabe entgegen zunehmen und gleichzeig vom Stapel entfernen (Pop)...
Vielleicht hilft dir
thread producer consumer weiter?