Boost 理解asio::异步读取行为

Boost 理解asio::异步读取行为,boost,asio,Boost,Asio,我继承了大量使用asio::async.*方法与主项目集成的代码。在我的主要项目中,我使用io\u context::post()来控制连接的调度和分派 该应用程序是一个运行在无限循环上的客户机,有成千上万个到不同主机的连接 我想更多地了解asio::async.*行为。我知道io\u context::post()会将工作项分派到系统,并在运行io\u context::run()的线程上安排回调 我的第一个想法是简单地传递io\u上下文,然后在该实例上传递.post(),但这看起来不是一个好

我继承了大量使用
asio::async.*
方法与主项目集成的代码。在我的主要项目中,我使用
io\u context::post()
来控制连接的调度和分派

该应用程序是一个运行在无限循环上的客户机,有成千上万个到不同主机的连接

我想更多地了解
asio::async.*
行为。我知道
io\u context::post()
会将工作项分派到系统,并在运行
io\u context::run()
的线程上安排回调

我的第一个想法是简单地传递
io\u上下文
,然后在该实例上传递
.post()
,但这看起来不是一个好的设计选择

顺便说一句,我不能用
asio::async.*
方法干净地实现背压(如果我错了,请原谅我的无知,
asio
的文档不是最丰富的),这就是为什么我试图将整个应用程序
.post()
放到
io\u上下文中,这样我就可以控制和不操作我的机器


编辑:更新了标题

您可以在此处找到一个简明但足以提供对
connect
async\u connect
函数示例的同步和异步操作的理解说明: