C++ 假设我对async_read进行了两次调用,那么第二次调用将仅在第一次调用处理之后处理,这是否安全?
我通过网络发送了一些数据,每个数据块都有一个由两部分组成的头:C++ 假设我对async_read进行了两次调用,那么第二次调用将仅在第一次调用处理之后处理,这是否安全?,c++,boost-asio,C++,Boost Asio,我通过网络发送了一些数据,每个数据块都有一个由两部分组成的头: 数据类型 数据块其余部分的长度 我将数据类型读入一个变量,将长度读入另一个变量,因此两个异步读取调用 我知道我可以链接async_读取,一切都应该正常工作,即首先读取消息类型,读取时,在其async_读取处理程序中,调用async_读取数据长度 但是如果我不做这样的链接,只做异步读取(数据类型),会怎么样;异步读取(数据长度);。Boost是否仅在第一个异步读取完成后才处理第二个异步读取() 异步读取在同一tcp套接字和同一io_服
异步读取在同一tcp套接字和同一io_服务对象上调用。不,这不是一个安全的假设
async\u read()
实现为对async\u read\u some()
的多个调用,因此读取结果可能是交错的。那么async\u write
呢?看起来是一样的——多个async\u write\u some()
调用。然后将不得不对写入进行排队。