Ich muss ein System von Arbeitern (repräsentiert als Threads) und (mehreren) Warteschlangen aufbauen. Individuelle Aufgaben warten in einer der Warteschlangen und warten darauf, von einem Arbeiter-Thread verarbeitet zu werden. Jeder Arbeiter kann Aufgaben nur aus einigen der Warteschlangen verarbeiten. Kein Dauerschleifen-Warten. C/C++, pthreads, Standard-POSIX.
Das Problem für mich ist die Sache mit den "mehreren Warteschlangen". Ich weiß, wie ich dies mit einer einzelnen Warteschlange implementieren kann. Die Arbeiter müssen auf allen Warteschlangen warten, die sie verarbeiten können (Warten auf BELIEBIGE von ihnen).
Auf Windows würde ich WaitForMultipleObjects verwenden, aber das muss plattformübergreifend sein.
Ich möchte keinen bestimmten Code dafür, nur einen Hinweis oder eine Beschreibung des Modells, das ich verwenden sollte. Danke im Voraus.