gpt4 book ai didi

c++ - Boost async_read_some 不完全是异步的

转载 作者:行者123 更新时间:2023-11-27 23:23:36 28 4
gpt4 key购买 nike

这是我的服务器代码:

socket_.async_read_some(boost::asio::buffer(data_read.data(), Message::header_length),
boost::bind(&TcpConnection::handle_read_header, shared_from_this(),
boost::asio::placeholders::error));

如果我在循环中写了下面的代码

boost::thread::sleep(boost::posix_time::seconds(2));

在上面的'async_read_some'调用的'handle_read_header'函数中,整个线程一直在等待直到 sleep 结束。因此,当另一个请求进入时,直到 sleep 结束才会处理它。是不是应该异步处理每个请求?我是 boost 和 C++ 的新手。如果我提到任何错误,请告诉我。

最佳答案

使用async_read_some 计划读取是在调用io_service::run() 的线程中实现的。如果您只有一个线程,它将等待完成一个读取处理程序,然后再启动另一个线程

您可以通过使用 io_service::run() 运行更多线程或缩短读取处理程序的执行时间来创建线程池。

关于c++ - Boost async_read_some 不完全是异步的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11078134/

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