我何时必须使用io_service :: strand

时间:2016-08-03 08:35:33

标签: c++ multithreading boost boost-asio

我何时必须使用io_service::strand

documentation来看,当我想要阻止多个处理程序同时执行时,我似乎需要它:

  

io_service :: strand类提供发布和分派的功能   处理程序,保证这些处理程序都不会执行   同时

据我所知,如果我有多个线程在同一个run对象上调用io_service,就会发生这种情况。

所以,从这个角度来看,使用strand的唯一合理方式似乎是当我们在内部有一些共享内存时,我们的处理程序传递给io_service::post函数,我们不希望出于某种原因在其中使用任何同步原语,如boost::mutex。我是对的吗?

或者两个线程同时调用io_service会有内部io_service::run问题吗?

0 个答案:

没有答案