gpt4 book ai didi

c++ - io_service::run() async_* 函数的处理顺序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:47 24 4
gpt4 key购买 nike

假设在调用 io_service::run() 时,有多个 async_read 操作被调度(它们之间可能还有其他操作)。当在 ReadHandler 函数中安排异步操作(如 async_write)时会发生什么?

void handler(const boost::system::error_code& error, std::size_t bytes) {
async_write(sock, boost::asio::buffer(wbuf), whandler);
}

也就是说,什么时候调用async_write?我希望执行顺序是:

1) async_read //1
2) async_write
3) async_read //2
4) async_write

这个执行顺序有保证吗?

最佳答案

不,不能保证。例如,如果第一个处理程序被调用并想要写入,如果第二个缓冲区尚不可读取怎么办?当然写应该放在第一位。但是,如果在第二个缓冲区准备好读取时无法写入怎么办?那么当然应该在第一次写入之前进行第二次读取。

关于c++ - io_service::run() async_* 函数的处理顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25724756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com