C++11 从多个线程调用boost::asio::io_服务运行函数

C++11 从多个线程调用boost::asio::io_服务运行函数,c++11,boost-asio,C++11,Boost Asio,在我的服务器应用程序中,有一组线程调用io_service run()函数。当处理程序引发异常时,run函数也会引发该异常。多个线程在try-catch块中调用run函数。要重新启动事件处理程序,我需要再次调用run,但文档说明必须首先调用restart()。重新启动io_服务必须确保所有运行调用都已完成。当其他线程仍在调用run函数时,我该怎么做 要重新启动事件处理程序,我需要再次调用run,但文档说明必须首先调用restart() 否文档没有这样说。服务用完/停止后,您需要重置。两个都没有,

在我的服务器应用程序中,有一组线程调用io_service run()函数。当处理程序引发异常时,run函数也会引发该异常。多个线程在try-catch块中调用run函数。要重新启动事件处理程序,我需要再次调用run,但文档说明必须首先调用restart()。重新启动io_服务必须确保所有运行调用都已完成。当其他线程仍在调用run函数时,我该怎么做

要重新启动事件处理程序,我需要再次调用run,但文档说明必须首先调用restart()

文档没有这样说。服务用完/停止后,您需要重置。两个都没有,因此不需要在那里重置


只需按照这篇文章(链接到)中的解释操作即可

这是对特定的
io\u服务
对象的所有
run
调用。只有一个io\u服务对象和多个线程调用在单个对象上运行