首页 > 解决方案 > 理解 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程序可以控制而不是拒绝我的机器。

编辑:更新了标题

标签: boostasio

解决方案


您可以在此处找到一个简洁但足以提供对同步异步connect操作的理解描述以及async_connect函数示例: Basic Boost.Asio Anatomy


推荐阅读