异步请求池

请求池

通过第三方请求来做的事情

  1. DNS/NTP
  2. HTTP
  3. mysql
  4. redis

模型

在这里插入图片描述

请求组件

  1. 线程池
  2. 协程
  3. 异步请求池

请求组件的必然性

由于这种请求是需要消耗时间的,所以设立请求组件,防止该操作阻塞业务进程

异步请求池

发送数据(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);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值