Linux epoll
简介与示例 TCP 服务器
1. 为什么要用 epoll
select
/poll
每次调用都把全部文件描述符从用户态拷贝到内核态,随连接数增长而线性变慢;epoll
采用事件驱动+就绪队列的方式,内核只把“已就绪”的描述符返回给用户态,O(1) 规模扩展;- 支持 边沿触发 Edge-Triggered (ET) 与 水平触发 Level-Triggered (LT) 两种模型,便于构建高性能网络服务。
2. 三个系统调用
调用 | 作用 |
---|---|
int epoll_create1(int flags) | 创建 epoll 实例,返回 epfd;flags 常用 EPOLL_CLOEXEC |
int epoll_c |