1

如果我在主线程的单独线程上启动 asio 计时器和接收,处理程序可以同时运行吗?我认为不是,即使它们同时准备好,单独的线程也会按顺序调用事件。要同时调用处理程序,asio 必须创建自己的(第 3 个)线程,甚至中断一个处理程序以运行另一个处理程序。我找不到说明处理程序将按顺序调用的文档,即使这看起来很可能。

4

1 回答 1

4

如果多个线程正在为io_service的事件循环提供服务,例如调用 的线程池io_service::run(),则处理程序可能会同时执行。另一方面,如果只有一个线程io_serviceio_service::run*(). Boost.Asio Timer.5 - 在多线程程序中同步处理程序教程可能会提供有关此主题的更多见解。

于 2013-04-17T17:33:34.047 回答