目 录CONTENT

文章目录

select、poll、epoll 原理

TalentQ
2025-09-11 / 0 评论 / 0 点赞 / 2 阅读 / 0 字

select、poll 和 epoll 都是 Linux 下实现 I/O 多路复用的机制,允许一个进程监听多个文件描述符。其核心原理区别在于:

select 和 poll 都采用轮询机制,每次调用都需要将全部监听的文件描述符从用户空间拷贝到内核空间,由内核进行线性扫描检查是否有事件就绪,导致性能随监听数增加而线性下降;

而 epoll 则采用了回调机制,内核通过红黑树管理描述符,仅当事件发生时通过回调函数将其加入就绪队列,epoll_wait 只需从就绪队列中直接取件,无需全局扫描,因此性能最高且不会随监听数增长而下降。

0

评论区