ich ein Programm habe ich die Erstellung (in C#) und ich sehe zwei Ansätze ..erstellen, neue Themen oder bekommen mehr Arbeit für Themen
1) Ein Job-Manager, der für eine beliebige Anzahl von X-Threads wartet bis zum Ende, wenn sie fertig sind es das nächste Stück Arbeit bekommt und erstellt einen neuen Thread und gibt es, dass die Brocken
oder
2) Wir X Threads erstellen sie jedem ein Stück Arbeit zu beginnen, geben, und wenn Ein Thread beendet einen Chunk und fragt den Jobmanager nach mehr Arbeit. Wenn es keine Arbeit mehr gibt, schläft es und fragt dann erneut, wobei der Schlaf immer länger wird.
Dieses Programm wird ein Lauf und fertig, so könnte ich sehen, dass es in einen Dienst verwandelt, der ständig nach mehr Jobs sucht.
Jeder Chunk besteht aus einer Reihe von Daten-IDs, einem Aufruf an die Datenbank, um einige Informationen zu erhalten oder eine Operation für die Daten-ID auszuführen, und dann Schreiben in die Datenbank-Information über die Daten-ID.
um Ansatz 1 zu klären, es wartet auf einen Thread zu beenden, und erstellt dann einen neuen Thread und gibt diesem Thread mehr Arbeit, wenn es mehr Arbeit zu tun ist –
Gegeben, dass mit dem zweiten Ansatz gehen. Lassen Sie den Thread jedoch statt eines Schlaf-Check-Schlaf-Verfahrens nach einem Arbeitselement am Ende fragen. Wenn es keinen gibt, muss es unbegrenzt schlafen. Dann suchen Sie in Ihrem Koordinator schlafende Fäden und signalisieren einem von ihnen, aufzuwachen. –