strand.post和strand.wrap之间的性能差异是什么?

时间:2013-01-19 09:46:03

标签: c++ boost boost-asio

strand::post()strand::wrap()之间的效果差异是什么?当使用strand::wrap()时,有关种族状况的故事是什么?

1 个答案:

答案 0 :(得分:3)

为了澄清,strand::wrap只创建一个处理程序,既不提供处理程序也不返回处理程序,也不会将其发送到io_service。如果执行strand::wrap的结果,那么与开销的性能差异可以忽略不计。但是,由于使用dispatch()的包装处理程序会导致感知性能差异,在某些条件下,用户的处理程序将立即执行,而不是post(),其中用户的处理程序始终添加到队列。

此外,使用钢丝时不应有竞争条件。根据{{​​3}},它对于不同的和共享的对象是线程安全的。