Frage

Ich habe ein Modell zum Ausführen von Worker-Aufgaben in einer Serveranwendung mithilfe eines Thread-Pools erstellt, der einem E/A-Abschlussport zugeordnet ist, wie in den folgenden Beiträgen gezeigt:

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 Klassen in Boost, die bei diesem Programmiermodell helfen können?

War es hilfreich?

Lösung

Zumindest nicht wirklich, nicht das letzte Mal, als ich nachgeschaut habe.Ich meine, boost::thread_group könnte die Dinge stellenweise etwas aufgeräumter machen, aber ich glaube nicht, dass das einen großen Unterschied machen würde.

Die Thread-Unterstützung von Boost scheint beim Schreiben von etwas, das plattformübergreifend ist, nur geringfügig nützlich zu sein, aber angesichts der Tatsache, dass das, was Sie schreiben, sowieso Win32-spezifisch sein wird (aufgrund der Verwendung von IOCPs), scheint es keinen großen Nutzen daraus zu ziehen .

Andere Tipps

Vielleicht möchten Sie sich das ansehen Threadpool-Projekt, was wie eine nette Threadpool-Implementierung zusätzlich zu Boost aussieht.Ich habe es selbst nicht ausprobiert, aber es sieht ziemlich gut aus.

Ich habe in Boost nichts gesehen, was bei der Struktur hilft, die man normalerweise hat, wenn man IO Completion Ports verwendet, aber andererseits habe ich in letzter Zeit auch nicht so nachgeschaut ...Etwas abseits des Themas möchten Sie vielleicht einen Blick auf den IOCP-basierten Thread-Pool werfen, der Teil meines kostenlosen IOCP-Server-Frameworks ist.Es könnte Ihnen zumindest ein paar Ideen geben.Sie können den Code finden Hier.Der Thread-Pool unterstützt die bedarfsgerechte Erweiterung und Verkleinerung und ist seit über 6 Jahren in Produktionssystemen im Einsatz.

AS verfügt über einige Reaktoren, mit denen Sie Dinge rund um Ihre IOCPs modellieren können.Einige davon hätten zu Boost hinzugefügt werden können, aber Boost macht den Aufbau ziemlich einfach.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top