何为异步http请求
首先搞清楚同步异步
同步异步是只两个操作流程以上来说的,同步就是做完一件事才能做另一件事,
比如对数据库的请求,接收操作,这是两个操作
同步就是发送sql语句了,当前进程阻塞等待数据库返回数据,这段时间不能做别的事情。
异步就是发送sql语句,当前进程不阻塞,继续执行下面的流程,当数据库返回数据了,通过异步事件通知主进程处理。
异步http请求就跟上面的差不多
如何用C实现异步http请求?
思路:通过epoll管理io事件。
每发送一个http请求,将socket fd加入epoll管理,等待EPOLLIN触发。继续发送剩余的http请求。
当epollwait触发EPOLLIN事件,就知道哪个http请求的响应来了。
因此,只需设计一个单独的线程,来处理epollwait这个大循环,
这个时候,就实现了异步的发起http请求,同步的处理http接收响应报文。