epoll原理

 2024-11-18 18:57:01  阅读 362  评论 0

摘要:在epoll文件系统建立file节点,并开辟epoll自己的内核高速cache区,建立红黑树,分配好想要的size的内存对象,建立一个list链表,用于存储准备就绪的事件。 把要监听的socket放到对应红黑树上,给内核中断处理程序注册一个回调函数,通知内核,如果这个句柄的数据到了,就把它

在epoll文件系统建立file节点,并开辟epoll自己的内核高速cache区,建立红黑树,分配

好想要的size的内存对象,建立一个list链表,用于存储准备就绪的事件。

把要监听的socket放到对应红黑树上,给内核中断处理程序注册一个回调函数,通知内核,如果这个句柄的数据到了,就把它放到就绪列表

epoll原理

扩展资料

epoll是一种IO多路转接技术,在LINUX网络编程中,经常用来做事件触发,即当有特定事件到来时,能够检测到,而不必阻塞进行监听。

epoll有两种工作方式,ET-水平触发 和 LT-边缘触发(默认工作方式),主要的区别是:

LT,内核通知你fd是否就绪,如果没有处理,则会持续通知。而ET,内核只通知一次。

epoll的优点

与select相比,epoll有以下优点:

2.1. 支持进程打开大量数目的socket描述符,select支持的进程描述符由FD_SETSIZE设置,默认值为

1024,而epoll不受这个限制。

2.2. epoll的效率,不随监听的socket数目增加而线性下降。

select采用轮询的方式,对socket集合的描述符表进行扫描,如果socket数量过大,并且大多数

socket属于idle状态,select的扫描就做了很多无用功。

epoll只会对活跃的socket进行操作,所以,在socket数量比较大,而绝大多数socket属于idle

状态时,epoll的效率会远胜于select。如果绝大多数socket是活跃的,由于epoll_ctl的影响,

epoll的效率会稍微比select差。

版权声明:我们致力于保护作者版权,注重分享,被刊用文章【epoll原理】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;

原文链接:https://www.yxiso.com/news/222667.html

发表评论:

关于我们
院校搜的目标不仅是为用户提供数据和信息,更是成为每一位学子梦想实现的桥梁。我们相信,通过准确的信息与专业的指导,每一位学子都能找到属于自己的教育之路,迈向成功的未来。助力每一个梦想,实现更美好的未来!
联系方式
电话:
地址:广东省中山市
Email:beimuxi@protonmail.com

Copyright © 2022 院校搜 Inc. 保留所有权利。 Powered by BEIMUCMS 3.0.3

页面耗时0.0623秒, 内存占用1.99 MB, 访问数据库22次

陕ICP备14005772号-15