【发布时间】:2014-11-03 18:07:56
【问题描述】:
阅读 boost::asio::deadline_timer 的文档后,似乎 io_service::run() 和处理程序方法是在同一个线程上调用的。在后台线程上运行io_service对象时,有什么方法可以在一个线程上创建计时器?
【问题讨论】:
-
你想达到什么目的?您可以根据需要使用服务运行任意数量的 IO 线程。所以,如果你想每隔一段时间给一个后台线程发信号,只需要引发一个条件变量或其他什么?
-
感谢您的回答。实际上,需要使进行回调的线程成为非阻塞线程。在正常实现中,一旦我们调用 io_service::run() 方法,它将被阻塞,直到时间计时器到期。所以两个线程都需要独立。
标签: c++ multithreading boost-asio