【发布时间】:2011-12-11 19:51:25
【问题描述】:
我不知道使用 strand::wrap 和 strand::post 发布之间的区别?似乎两者都保证序列化但是你怎么能用 wrap 序列化而不得到一致的顺序?似乎他们都必须做同样的事情。我什么时候会使用其中一个?
这是一个更详细的伪代码:
mystrand(ioservice);
mystrand.post(myhandler1);
mystrand.post(myhandler2);
这保证了我的两个处理程序即使在线程池中也被序列化并按顺序执行。
现在,这和下面有什么不同?
ioservice->post(mystrand.wrap(myhandler1));
ioservice->post(mystrand.wrap(myhandler2));
似乎他们做同样的事情? 为什么要使用一个而不是另一个?我看到两个都用过,我想弄清楚什么时候 一个比另一个更有意义。
【问题讨论】:
标签: multithreading boost asynchronous boost-asio