【发布时间】:2009-12-30 21:30:21
【问题描述】:
我刚刚浏览了 asio chat server example。我的问题是关于他们对io_service.run() 函数的使用。 io_service.run() 函数的文档说:
run() 函数一直阻塞,直到所有工作完成并且没有 要调度更多的处理程序,或者直到 io_service 已经 停了下来。多个线程可能会调用 run() 函数来设置一个 io_service 可以从中执行处理程序的线程池。全部 在池中等待的线程是等效的,并且 io_service 可以选择其中任何一个来调用处理程序。运行()函数 只有在调用 重置()。
它说 run 函数将返回,我假设当它返回时,网络线程会停止,直到再次调用它。如果这是真的,那么为什么不在循环中调用 run 函数,或者至少不给它自己的线程? io_service.run() 函数对我来说几乎是个谜。
【问题讨论】:
标签: c++ boost boost-asio