それは読んでBoost.Asioを書き込むための別々のスレッドを使用することは可能ですか?

StackOverflow https://stackoverflow.com/questions/1837815

質問

ブーストドキュメントによると、 に、複数のスレッドがio_service::run()を呼び出す有するIOサービスは、非同期タスクを実行するために使用できるスレッドのプールを設定します。これは、明示的にプールに参加しているすべてのスレッドが同等であると考えられることを述べています。

ソケットと書き込み用に別の1から読み取るための別のスレッドを持つことは不可能であることを意味していますか?それが可能な場合、どのように私はこれを実装するのでしょうか?

役に立ちましたか?

解決

io_service::run()を呼び出す任意のスレッドが非同期ハンドラを呼び出すために使用することができます。しかし、あなたは、具体的操作のタイプを実行するスレッドを指定することはできません。たとえば、あなたは2つのバックグラウンドスレッドで実行():: io_serviceを呼び出し、そしてあなたは、メインスレッドでsocket::async_sendsocket::async_receiveをコールした場合、あなたのハンドラは、現在利用可能な任意のバックグラウンドスレッドで実行されます。そうです、すべてのスレッドは基本的に同等とみなされ、そして任意の非同期処理のために使用することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top