select、poll、epoll的简要对比
admin
2024-05-08 12:56:07
0

select

select的几大缺点:
(1)每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大
(2)同时每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也很大
(3)select支持的文件描述符数量太小了,默认是1024

select 为什么是1024? —— 两个1024

1,select中存放文件描述符的数组大小FD_SETSIZE为1024

2,进程的文件描述符上限默认是1024,正是因为这个原因,select设计时才把数组大小设计为1024

poll

poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。

epoll

(1)poll和select的增强版,event poll,更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。
(2)两种工作模式:LT(level trigger)和ET(edge trigger)

LT模式水平触发(默认模式):当epoll_wait检测到描述符事件发生并将此事件通知应用程序,应用程序可以不立即处理该事件。下次调用epoll_wait时,会再次响应应用程序并通知此事件。

ET模式边沿触发:当epoll_wait检测到描述符事件发生并将此事件通知应用程序,应用程序必须立即处理该事件。如果不处理,下次调用epoll_wait时,不会再次响应应用程序并通知此事件。

ET模式在很大程度上减少了epoll事件被重复触发的次数,因此效率要比LT模式高。epoll工作在ET模式的时候,必须使用非阻塞套接口,以避免由于一个文件句柄的阻塞读/阻塞写操作把处理多个文件描述符的任务饿死。

相关内容

热门资讯

三人行:2024年净利润1.2... 4月18日消息,三人行公告,2024年营业收入42.08亿元,同比下降20.35%。归属于上市公司股...
广联达:取得不超1.5亿元回购... 4月18日消息,广联达(002410.SZ)公告称,公司取得中国工商银行北京市分行出具的《贷款承诺函...
酒钢宏兴:拟以1亿元-2亿元回... 4月18日消息,酒钢宏兴公告,公司拟以1亿元-2亿元资金回购股份,回购价格不超过2.19元/股,回购...
中航信托:聘请建信信托、国投泰... 4月18日消息,中航信托股份有限公司发布相关公告,为提升公司经营管理效能,经股东会、董事会审议通过,...
农业农村部:进一步协调强化财政... 4月18日消息,农业农村部发展规划司司长陈邦勋表示,2024年我国的牛肉牛奶市场供需不平衡,价格持续...
龙卷风袭击巴西南部 已致5死4... 当地时间11月8日,巴西地方政府通报,该国南部巴拉那州遭龙卷风袭击,导致至少5人死亡、超过430人受...
官方声明:王硕威同志不是福建舰... 11月8日,中国舰船研究设计中心官方微信公众号发布“声明”: 一、王硕威同志不是福建舰总设计师,也不...
独家 | 魏正勤调任大润发华东... 《商业观察家》获悉,高鑫零售(大润发+欧尚)CEO沈辉11月3日发布一份人事调整令,宣布自2025年...
森马服饰新增质押6650万股股... 新京报贝壳财经讯 11月8日,森马服饰发布公告,大股东邱坚强将其持有的森马服饰6650万股股份进行质...
为了下个十年,蚂蚁集团拼了! ... 本文来源:时代周报 作者:黄宇昆蚂蚁集团迎来关键组织架构升级。11月7日,蚂蚁集团CEO韩歆毅发布全...