首页 > 其他 > 详细

sellect、poll、epoll

时间:2021-06-01 14:48:47      阅读:13      评论:0      收藏:0      [点我收藏+]

1. select (能监控数量有限,不能告诉用户程序具体哪个连接有数据)

1. select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点

2. select的一个缺点在于单个进程能够监视的文件描述符的数量存在最大限制,在Linux上一般为1024

3. select监控socket连接时不能准确告诉用户是哪个,比如:现在用socket监控10000链接,如果其中有一个链接有数据了,select就会告诉用户程序,你有socket来数据了,那样就只能自己循环10000次判断哪个活跃

2. poll(和select一样,仅仅去除了最大监控数量)

1. poll和select在本质上没有多大差别,但是poll没有最大文件描述符数量的限制

2. 可以理解为poll是一个过渡阶段,大家也都不用他

3. epoll (不仅没有最大监控数量限制,还能告诉用户程序哪个连接有活跃)

注:epoll被认为是linux下性能最好的多路io就绪通知方法

1. epoll直到Linux2.6(centos6以后)才出现了由内核直接支持

2.Epoll没有最大文件描述符数量限制

3. epoll最重要的优点是他可以直接告诉用户程序哪一个,比如现在用epoll去监控10000个socket链接,交给内核去监测,现在有一个连接有数据了,在有有一个连接有数据了,epoll会直接高数用户程序哪个连接有数据了

4. epoll能实现高并发原理

1. epoll() 中内核则维护一个链表,epoll_wait 直接检查链表是不是空就知道是否有文件描述符准备好了。

sellect、poll、epoll

原文:https://www.cnblogs.com/asdn/p/14835663.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!