Frage

Nach der Boost- Dokumentation , mit mehreren Threads nennen io_service::run() stellt einen Pool von Threads, die der IO-Dienst für die Durchführung asynchrone Aufgaben verwenden kann. Darin heißt es ausdrücklich, dass alle Themen, die den Pool angeschlossen haben, werden als gleichwertig.

Bedeutet dies, dass es nicht möglich ist, einen separaten Thread haben aus einer Buchse zum Lesen und ein separaten für das Schreiben? Wenn es möglich ist, wie würde ich dies umsetzen?

War es hilfreich?

Lösung

Jeder Thread, der io_service::run() Anrufe können verwendet werden, asynchrone Handler aufzurufen. Aber man kann nicht speziell angeben, welcher Thread ausgeführt wird, welche Art von Operation. Wenn Sie zum Beispiel, rufen io_service :: run () in 2 Hintergrund-Threads, und Sie waren socket::async_send und socket::async_receive in einem Hauptthread nennen, werden Ihre Handler in jedem Hintergrund-Thread ausgeführt, die derzeit verfügbar ist. Also ja, werden alle Themen grundsätzlich als gleichwertig betrachtet und können für jeden asynchronen Betrieb verwendet werden.

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