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
函数示例的同步和异步操作的理解说明: