strand::post()
和 strand::wrap()
之间的性能差异是什么?使用 strand::wrap(
) 时关于竞争条件的故事是什么?
最佳答案
只是为了澄清,strand::wrap
只创建一个处理程序,提供的处理程序和返回的处理程序都不会被分派(dispatch)或发布到 io_service
。如果执行 strand::wrap
的结果,则开销带来的性能差异可以忽略不计。但是,由于使用 dispatch()
的包装处理程序,可能会出现感知到的性能差异。 ,在某些情况下,用户的处理程序将立即执行,而不是 post()
,其中用户的处理程序始终添加到队列中。
此外,使用链时不应存在竞争条件。根据 documentation ,它对于不同的和共享的对象是线程安全的。
关于c++ - strand.post 和 strand.wrap 的性能区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14413054/