【发布时间】:2019-02-07 14:52:20
【问题描述】:
我正在编写一个使用 Boost asio 的网络库,并且对是否应该使用单独的线程来运行 io_service 感到困惑。
我目前有一个包含所有 asio 工作的类。它有一个 io_service,一个 socket 等,并使用 async_read 和 async_write 方法与远程服务器通信。该类公开了读取和写入方法,以允许用户与远程服务器进行通信。
这个类然后被其他类调用,这些类使用它的读/写方法向远程服务器发送和接收数据。在某些情况下,会出现从服务器读取/写入数据的链式调用,直到调用最终用户提供的回调以传递计算的最终结果。
我现在正在尝试实现一个连接池,并且想知道是否需要一个线程池:对远程服务器的所有读取和写入都使用异步方法,在最终用户提供的回调之前,没有任何读取后处理涉及阻塞调用.如果不需要单独的线程池,让一系列连接对象同时运行不好吗?
【问题讨论】:
标签: c++ c++11 boost-asio