3

strand::post()和之间的性能差异是什么strand::wrap()?使用时关于比赛条件的故事是什么strand::wrap(

4

1 回答 1

4

只是为了澄清,strand::wrap只创建一个处理程序,提供的处理程序和返回的处理程序都不会分派或发布到io_service. 如果结果 fromstrand::wrap被执行,那么开销的性能差异可以忽略不计。但是,使用 包装的处理程序可能会出现感知的性能差异dispatch(),在某些情况下,用户的处理程序将立即执行,而不是post(),用户的处理程序总是添加到队列中。

此外,使用链时不应存在竞争条件。根据文档,对于不同的和共享的对象,它是线程安全的。

于 2013-01-19T13:22:05.667 回答