千家信息网

IO多路复用总结

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,面试题:说出 你所知道的IO多路复用模型,并解释为什么IO多路复用效率高?select poll,epoll都是IO多路复用的一种机制,就是通过一种机制可以监视多个文件描述符,一旦某个文件描述符就绪(
千家信息网最后更新 2026年10月31日IO多路复用总结

面试题:说出 你所知道的IO多路复用模型,并解释为什么IO多路复用效率高?


select poll,epoll都是IO多路复用的一种机制,就是通过一种机制可以监视多个文件描述符,一旦某个文件描述符就绪(一般是读就绪或者写就绪),就能够通知进程进行相应的读写操作,他们三个本质上都是同步IO,因为 它们都需要在读写事件就绪后自己负责读写操作,也就是读写过程中是阻塞的,而异步IO无需自己进行读写,它只负责发起事件具体的实现由别的完成

select和poll的实现比较相似,epoll就是poll和select的增强版了


select:

select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:

1、 单个进程可监视的fd数量被限制,即能监听端口的大小有限。

一般来说这个数目和系统内存关系很大,具体数目可以cat /proc/sys/fs/file-max察看。32位机默认是1024个。64位机默认是2048.

2、 对socket进行扫描时是线性扫描,即采用轮询的方法,效率较低:

当套接字比较多的时候,每次select()都要通过遍历FD_SETSIZE个Socket来完成调度,不管哪个Socket是活跃的,都遍历一遍。这会浪费很多CPU时间。如果能给套接字注册某个回调函数,当他们活跃时,自动完成相关操作,那就避免了轮询,这正是epoll与kqueue做的。

3、需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大

poll:

poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态,如果设备就绪则在设备等待队列中加入一项并继续遍历,如果遍历完所有fd后没有发现就绪设备,则挂起当前进程,直到设备就绪或者主动超时,被唤醒后它又要再次遍历fd。这个过程经历了多次无谓的遍历。

它没有最大连接数的限制,原因是它是基于链表来存储的,但是同样有一个缺点:

1、大量的fd的数组被整体复制于用户态和内核地址空间之间,而不管这样的复制是不是有意义。 2、poll还有一个特点是"水平触发",如果报告了fd后,没有被处理,那么下次poll时会再次报告该fd。

epoll:

epoll支持水平触发和边缘触发,最大的特点在于边缘触发,它只告诉进程哪些fd刚刚变为就需态,并且只会通知一次。还有一个特点是,epoll使用"事件"的就绪通知方式,通过epoll_ctl注册fd,一旦该fd就绪,内核就会采用类似callback的回调机制来激活该fd,epoll_wait便可以收到通知

epoll的优点:


1、没有最大并发连接的限制,能打开的FD的上限远大于1024(1G的内存上能监听约10万个端口);
2、效率提升,不是轮询的方式,不会随着FD数目的增加效率下降。只有活跃可用的FD才会调用callback函数;
即Epoll最大的优点就在于它只管你"活跃"的连接,而跟连接总数无关,因此在实际的网络环境中,Epoll的效率就会远远高于select和poll。

3、 内存拷贝,利用mmap()文件映射内存加速与内核空间的消息传递;即epoll使用mmap减少复制开销。

select、poll、epoll 区别总结:

1、支持一个进程所能打开的最大连接数

2、FD剧增后带来的IO效率问题

3、 消息传递方式



效率 最大 内核 空间 设备 进程 内存 多路 复用 事件 数目 文件 方式 本质 机制 特点 用户 结构 限制 优点 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会毛军 国智互联网科技 厦门中拓互联网络科技有限公司 互联网与科技发展 互联网科技的 互联网科技论文 互联网高科技股票 互联网科技类展会 安控科技rtu产品工业互联网 黑科技闪耀互联网之光 乌鲁木齐新华智原互联网科技学校 翼展科技 首家互联网医院 锡山区互联网智能科技产品供应 伍佰万互联网科技怎么赚钱 深圳无忧互联网科技 广州千川互联网科技有限公司 互联网硬科技公司 第三届互联网大会安防黑科技 科技互联网专业务虚会材料 如何强化互联网金融科技 互联网新科技 互联网下的科技发展 上海亿帐通互联网科技 银川新华互联网科技学校地址 互联网科技项目计划书材料类 全球顶尖互联网科技公司 花神(南京)互联网科技有限公司 青岛科技大学互联网大赛研究生 杭州壁岐互联网科技有限公司 利用互联网等科技手段
0