本文主要是介绍Crow:接受http连接请求do_accept,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Crow:run的流程2 建立io_service及线程-CSDN博客
介绍了run的Crow会启动一个线程并用于处理do_accept。
那么do_accept本身是做什么的呢?
void Server::do_accept()
{if (!shutting_down_){uint16_t service_idx = pick_io_service_idx();asio::io_service& is = *io_service_pool_[service_idx];task_queue_length_pool_[service_idx]++;...}
}
用于根据当前处理任务的数量多少,从io_service池取出一个is,也就相当于是从线程池中取出一个线程(因为每个线程阻塞在一个io_service上)。
然后将增加该线程处理的任务数量。
void do_accept()
{if (!shutting_down_){...auto p = new Connection<Adaptor, Handler, Middlewares...>(is, handler_, server_name_, middlewares_
这篇关于Crow:接受http连接请求do_accept的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!