根据我的理解,将处理程序发布到strand对象意味着:
将处理程序直接发布到io_service对象并将它们包装起来strand::wrap也意味着一次只执行一个已发布的处理程序,但不是按顺序执行的。
还有其他区别吗?以及如何使用 并行(在不同线程中)运行两种(或更多)不同类型的工作(因此,不同的处理程序/函数)strand?
如果您希望它们并行运行,请不要使用支架。链用于序列化。只需发布到服务并让服务在线程池中运行。
但你提出了一个很好的观点,我希望有人能回答。到底有什么区别呢?如果wrap 序列化所有处理程序,那么它们怎么会乱序,即看起来它与通过strand 进行发布的作用相同?你会在哪里使用其中一种而不是另一种?
| 归档时间: |
|
| 查看次数: |
1422 次 |
| 最近记录: |