epoll原理_Java-彻底弄懂netty-程序员不得不理清的epoll原理-知识铺

本文介绍了epoll这一高效的多路复用技术,并探讨了其在Linux高性能网络服务器中的应用。通过对select和poll的改进,epoll能更有效地管理大量socket连接,提升了网络I/O效率。文章还讲解了epoll的工作原理及其核心组件eventpoll的作用。

知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停的来唤醒你记忆深处的知识点。

一、高效的epoll

epoll 是Linux下,高效的多路复用技术,也是Linux下高性能网络服务器的关键技术。 通过网络socket链接,把远程资源加载到本地内存中。如何来优化这个性能呢?

二、epoll提出原因

2.1.poll和select 相对之前的AIO有很大的提高,但是由于需要监视着“等待队列”与及“阻塞进程”,性能还是未完全释放。 这个时候CPU又被别的进程给抢走,上下文切换的性能又被消耗。

2.2.select 要进行遍历,才能感知到那个socket来了数据,因此select只能一个一个遍历,来唤醒每个socketChanel。

三、epoll原理

3.1 epoll监视多个socket, 改进了select维护等待队列和阻塞进程进一步改进。把这两步动作给拆分开来。

3.2 epoll_ctl 维护等待队列

3.3 epoll_wait 阻塞队列

67f80eb4170f16f79560a4c52ad41065.png

四、eventpoll

0d0de2aecf8a506f87fc907c3732cc30.png

4.1 调用epoll_create方法,另外会创建一个eventpoll对象。

4.2 eventpoll维护着就绪列表,如果有socket来数据,就把socket添加到就绪列表。

4.3 阻塞进程收到就绪列表的回调,既可以开始socket数据传输工作。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值