3

根据 Boost文档,调用多个线程io_service::run()会设置一个线程池,IO 服务可以使用这些线程池来执行异步任务。它明确指出所有加入池的线程都被认为是等效的。

这是否意味着不可能有一个单独的线程用于从套接字读取和单独的线程用于写入?如果可能的话,我将如何实现这一点?

4

1 回答 1

5

任何调用的线程io_service::run()都可以用来调用异步处理程序。但是你不能具体指定哪个线程执行哪种类型的操作。例如,如果您在 2 个后台线程中调用 io_service::run(),并且您要在主线程中调用socket::async_sendand socket::async_receive,您的处理程序将在当前可用的任何后台线程中执行。所以是的,所有线程基本上都被认为是等效的,并且可以用于任何异步操作。

于 2009-12-03T09:11:14.577 回答