Oli*_*r K 5 multithreading boost asynchronous boost-asio
我不知道使用strand::wrap 和strand::post 进行发布之间的区别?看起来两者都保证序列化,但如何使用换行序列化而不获得一致的顺序?看起来他们都必须做同样的事情。我什么时候会使用其中一种而不是另一种?
这是更详细的伪代码:
mystrand(ioservice);
mystrand.post(myhandler1);
mystrand.post(myhandler2);
Run Code Online (Sandbox Code Playgroud)
这保证了我的两个处理程序即使在线程池中也能按顺序序列化和执行。
现在,这与下面有什么不同?
ioservice->post(mystrand.wrap(myhandler1));
ioservice->post(mystrand.wrap(myhandler2));
Run Code Online (Sandbox Code Playgroud)
看起来他们做同样的事情?为什么要使用其中一种而不是另一种?我看到两者都被使用,并试图找出什么时候一个比另一个更有意义。
| 归档时间: |
|
| 查看次数: |
1273 次 |
| 最近记录: |