C++ 如果ioservice忙于处理回调,async_是否会从缓冲区中的写入接收_?
因此,假设我从C++ 如果ioservice忙于处理回调,async_是否会从缓冲区中的写入接收_?,c++,boost,boost-asio,C++,Boost,Boost Asio,因此,假设我从 void recv_callback(error_code&, std::size_t len) { socket.async_recv_from(buffer,endpoint,recv_callback); handle(buffer); } 因此,我在回调中做的第一件事是请求更多的接收,但是由于ioservice正忙于处理回调,我认为在回调完成之前,我的缓冲区可能不会被覆盖。是这样吗?这要看情况而定 这取决于底层IO操作的实际实现方式。我认为有些操
void recv_callback(error_code&, std::size_t len) {
socket.async_recv_from(buffer,endpoint,recv_callback);
handle(buffer);
}
因此,我在回调中做的第一件事是请求更多的接收,但是由于ioservice正忙于处理回调,我认为在回调完成之前,我的缓冲区可能不会被覆盖。是这样吗?这要看情况而定
这取决于底层IO操作的实际实现方式。我认为有些操作系统实际上可能直接写入用户空间内存
我总是交出实际的缓冲区 让我们假设操作系统通过内核缓冲区读取数据。是否保证不会异步填充用户缓冲区?恐怕不行,我不会这么想。异步是异步的,如果操作系统不支持异步调用(例如,完成端口),那么将使用多个线程来模拟