c++ - boost::asio 中的 post 和 dispatch 有什么区别?
问题描述
我正在尝试使用boost:asio库来创建线程池。官方文档说:
dispatch : 请求 io_service 调用给定的处理程序。
post:请求 io_service 调用给定的处理程序并立即返回。
有人可以解释这两者有何不同吗?
解决方案
不同之处在于dispatch
可以在其中运行handler
(CompletionHandler
传递给它),这意味着您将等待它完成,如果它完成,则在函数返回之前。 post
另一方面,不会自行运行handler
并立即返回调用站点。
因此,dispatch
是一个潜在的阻塞调用,post
而是一个非阻塞调用。
推荐阅读
- android - 使用具有自定义范围和视图生命周期的 kotlin 协程进行轮询
- python - 无法对 python PMML Pipeline 使用解决方法
- angular - 在错误处理Angular 7 RXJS中发出http请求
- nuxt.js - nuxtjs:如何处理布局模板中的异步数据
- python - Python 使用 itertools 按三个列表分组
- intellij-idea - 找到代码作者(注释/指责)到位
- sails.js - SailsJS - 覆盖默认控制器以添加全局规则或限制
- slack - Slack api 错误 nongranular_bot_token_not_allowed
- java - 服务完成后关闭服务
- ios - ScrollView 中的视图没有正确更新