请求池
通过第三方请求来做的事情
- DNS/NTP
- HTTP
- mysql
- redis
模型
请求组件
- 线程池
- 协程
- 异步请求池
请求组件的必然性
由于这种请求是需要消耗时间的,所以设立请求组件,防止该操作阻塞业务进程
异步请求池
发送数据(commit)
启用单独线程接收返回(thread_callback)
初始化发送与接收方法(init)
销毁该异步请求相关资源(destroy)
void init(void)
{
epfd = epoll_create()
pthread_create
}
void commit()
{
socket_fd = socket()
connect(socket_fd,serv_addr, sizeof(struct sockaddr));
encode-->redis/ntp/dns
send(socket_fd, data, size, 0);
epoll_ctl(epfd, EPOLL_CTL_ADD, socket_fd, &ev);
}
void thread_callback()
{
while(1)
{
epoll_wait();
recv(socket_fd, buff, len, 0);
parser(buff, len);
epoll_ctl(epfd, EPOLL_CTL_DEL, socket_fd, &ev);
}
}