【发布时间】:2009-12-03 05:17:41
【问题描述】:
根据 Boost Documentation,让多个线程调用 io_service::run() 设置了一个线程池,IO 服务可以使用该线程池来执行异步任务。它明确指出所有加入池的线程都被认为是等效的。
这是否意味着不可能有一个单独的线程用于从套接字读取和单独的线程用于写入?如果可能,我将如何实现?
【问题讨论】:
标签: c++ multithreading boost boost-asio
根据 Boost Documentation,让多个线程调用 io_service::run() 设置了一个线程池,IO 服务可以使用该线程池来执行异步任务。它明确指出所有加入池的线程都被认为是等效的。
这是否意味着不可能有一个单独的线程用于从套接字读取和单独的线程用于写入?如果可能,我将如何实现?
【问题讨论】:
标签: c++ multithreading boost boost-asio
任何调用io_service::run() 的线程都可以用来调用异步处理程序。但是你不能具体指定哪个线程执行哪种类型的操作。例如,如果您在 2 个后台线程中调用 io_service::run(),并且您要在主线程中调用 socket::async_send 和 socket::async_receive,则您的处理程序将在当前可用的任何后台线程中执行。所以是的,所有线程基本上都被认为是等效的,并且可以用于任何异步操作。
【讨论】: