boost - 理解 asio::async_read 行为
问题描述
我继承了广泛使用asio::async_*
方法与我的主项目集成的代码。在我的主要项目中,我io_context::post()
用来对连接的调度和调度进行一些控制。
该应用程序是在无限循环上运行的客户端,具有数万个与不同主机的连接。
我想更多地了解这种asio::async_*
行为。我确实知道io_context::post()
将工作项分派到系统并在正在运行的线程上安排回调io_context::run()
。
我的第一个想法是简单地io_context
在.post()
那个实例上传递,但这对我来说似乎不是一个好的设计选择。
AFAIK,我无法用这些方法干净地实现背压asio::async_*
(如果我弄错了,请原谅我的公然无知,asio
文档不是最丰富的),这就是为什么我试图让整个.post()
应用io_context
程序可以控制而不是拒绝我的机器。
编辑:更新了标题
解决方案
您可以在此处找到一个简洁但足以提供对同步和异步connect
操作的理解描述以及async_connect
函数示例: Basic Boost.Asio Anatomy
推荐阅读
- javascript - 我正在尝试将标记集群添加到我的谷歌地图脚本
- android - 在android中使用dtmf检测哪个软键盘键被按下
- python - Django Haystack - 没有名为“haystack.backends.elasticsearch5_backend”的模块
- django - 当所有公共访问被阻止时,为什么我无法从我的 S3 存储桶中获取图像?403 禁止但静态文件加载正常
- python - 从 Python 列表中生成约束组合对的最有效方法
- laravel - 直接在 Laravel 中运行 artisan 命令时创建日志文件
- python-3.x - Django 定义了一个模型,但模型的某些字段不起作用
- c# - await Task.Delay() 在使用 MVVMCross 的 Xamarin.iOS 上不起作用
- ios - 为什么在 ionic4 的 xcode 中会出现此错误
- android - 我正在尝试在 android 中使用毫秒发送通知?