码迷,mamicode.com
首页 > 其他好文 > 详细

在写一次epoll

时间:2016-06-08 13:53:48      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

epoll & select & poll只能处理IO相关的操作,epoll每一个操作必须注册到时间监控机制中,并且还需要进程或者线程进行管理。

多进程/多线程 和epoll相比较

  epoll用在大量链接,少处理的项目中;

  多线程/多进程用在少量链接,复杂的业务处理。

 

在QQ中,处理登陆是epoll实现,因为epoll只能处理IO相关操作,所以epoll将登陆数据往后传送进程或线程做后续处理,并且把sql查询向数据库请求数据给数据库,并且高并发是在epoll端解决。

epoll比poll多了高速模式即(边缘触发)

 ppc/tpc(多进程/多线程)

  小号系统资源,连接数增多,系统的开销增大,每一个链接有一个独立的线程/进程,实时性,连接数不多 一般为几百个

select 

  采用轮询的方式 并且连接数在1024~2048之间,

epoll

  默认模式(水平触发)和poll差不多(除epoll监听的句柄多)连接数为几百万

水平触发:

  只要句柄文件有了动作,那么epoll就开始被占用。Nainx中的例子会将数据接受完全。

边缘触发:

  当数据接受完成时,epoll开始进行管理。Nginx中的例子会将没接收完的数据在第二个数据到来时,接收。

 注:epoll进行管理的句柄增大,效率降低。epoll去掉了ppc/tpc对进程的封装。

在写一次epoll

标签:

原文地址:http://www.cnblogs.com/chenyang920/p/5569727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!