温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

为什么epoll比select快

发布时间:2021-06-23 09:55:29 来源:亿速云 阅读:163 作者:chen 栏目:大数据

这篇文章主要介绍“为什么epoll比select快”,在日常操作中,相信很多人在为什么epoll比select快问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”为什么epoll比select快”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

select,poll,epoll都是IO多路复用的机制。

select

  • select每次调用都有拷贝列表数据到内核,每次都要做很多添加等待队列工作,唤醒时又要做很多移除工作。

  • 进程唤醒后,还需要遍历一次才能知道哪些socket收到数据。

epoll

  • 由于socket列表相对固定不变,epoll在内核维护了socket列表(红黑树)。epoll_create来新建,epoll_ctl来添加删除,epoll_wait来等待。

  • socket就绪后不是直接通知进程,而是通过eventpoll中介。eventpoll维护了一个就绪列表。这样进程直接获取到就绪列表,不需要遍历所有。

epoll模式

  • 水平触发(Level Triggered):只要句柄一直处于可用状态,就会一直通知用户。

  • 边缘触发(Edge Triggered):句柄在发生读写事件时只会通知用户一次

到此,关于“为什么epoll比select快”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI