poll,epoll模型

1.select模型中使用的是bitmap实现文件描述符的记录,poll使用的是链表或者数组来实现的;

2.好处是:

**解决了bitmap只能最大监控1024个连接

使用了数组或者链表,解决了bitmap不能重复使用的问题;**

3.epoll(三个常见的函数)

epoll_create:创建一个epoll,参数是预估需要处理的文件的数量;(使用返回值可以找到需要的红黑树)

epoll——ctl,传入一个文件描述符,返回值为一个int (将文件描述符放入红黑书中监听,以及事件(文件描述符的读,写等事件))

epoll_wait()返回值是需要处理的文件数量;

4.在共享区域中创建一个红黑树,使用ctl将连接注册到红黑树;调用epoll——wait方法监听哪些文件发生了变化,返回变化的数量;

epoll的优点:

5.相比较select模型以及poll模型,前两者遍历文件描述符的时间复杂度为O(n),epoll模型使用了红黑树(并且红黑树可以重新排序,将变化的节点放在前面),依据返回的值,使得遍历节点的复杂度为O(1);

epoll使用了共享内存区,这就意味着不用每次拷贝红黑树到系统内核,提升了效率

全部评论

相关推荐

WhiteAlbum...:学院本2中大厂垂直实习➕acm比赛 秋招0面试
点赞 评论 收藏
分享
10-29 22:30
吉林大学 Java
同专业学长学姐,去互联网大厂的起薪 15k+,去国企 IT 岗的也有 12k+,就连去中小厂的都基本 13k 起步😤 我投的传统行业技术岗,拼死拼活拿到 1Woffer,本来还挺开心,结果逛了圈牛客直接破防,同是校招生,行业差距怎么就这么大啊!
喵喵喵6_6:应该哪里不对吧,大厂都是20k以上的,10k那种对于985本的学生基本就是点击一下过了笔试就送的,我前两天刚拿了一个11k,笔试完第2天就打电话了,非科班。坏消息是c++岗开这么低真是刷新认知了
校招生月薪1W算什么水平
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务