2008-08-31 5 views
4

Ich habe ein Modell für die Ausführung von Aufgaben Arbeiter in einer Server-Anwendung unter Verwendung eines Thread-Pool erstellt mit einem IO Completion-Port verbunden ist, wie unten in den Pfosten gezeigt:Aufgabe orientierte Threadpooling

http://weblogs.asp.net/kennykerr/archive/2008/01/03/parallel-programming-with-c-part-4-i-o-completion-ports.aspx

http://blogs.msdn.com/larryosterman/archive/2004/03/29/101329.aspx

Gibt es Boost-Klassen, die bei diesem Programmiermodell helfen können?

Antwort

1

Nicht wirklich, zumindest nicht das letzte Mal, als ich schaute. Ich meine, boost :: thread_group könnte die Dinge an einigen Stellen etwas aufgeräumter machen, aber nicht so, wie es einen großen Unterschied machen würde, denke ich nicht.

Boost's Thread-Unterstützung scheint marginal nützlich zu sein, wenn man etwas plattformübergreifend schreibt, aber da das, was du schreibst, sowieso win32-spezifisch ist (wegen der Verwendung von IOCPs), scheint es nicht wirklich zu sein viel davon profitieren.

1

Sie können die threadpool project überprüfen, die wie eine nette Threadpool-Implementierung auf Boost aussieht. Ich habe es selbst nicht versucht, aber es sieht ziemlich gut aus.

1

Ich habe nichts in Boost gesehen, das hilft mit der Struktur, die Sie neigen dazu, mit IO Completion Ports zu enden, aber dann habe ich nicht in letzter Zeit geschaut ... Allerdings etwas off-topic, Sie Vielleicht möchte ich einen Blick auf den IOCP-basierten Thread-Pool werfen, der Teil meines kostenlosen IOCP-Server-Frameworks ist. Es kann Ihnen vielleicht ein paar Ideen geben, wenn nichts anderes. Sie finden den Code here. Der Thread-Pool unterstützt Expansion und Kontraktion je nach Bedarf und wird seit über 6 Jahren in Produktionssystemen verwendet.

0

ACE hat einige Reaktoren, die Sie verwenden können, um Dinge um Ihre IOCPs zu modellieren. Einige davon könnten zum Boosten hinzugefügt worden sein, aber der Boost macht es sehr einfach, sie zu bauen.

Verwandte Themen