Epoll详解

来源:互联网 发布:电脑硬件温度检测软件 编辑:程序博客网 时间:2024/05/22 13:17

工作模式

这里写图片描述

LT(level triggered)

特点:当有文件描述符就绪时,如果应用程序没有处理完成,内核会继续发出通知;Epoll的默认工作方式,这种模式编程出错误可能性要小一点,传统的select/poll都是这种模型的代表

LT(level triggered)

特点:只有当文件描述符从未就绪变为就绪时,即0->1,内核会发出通知,如果应用程序没有处理完成,只能等待下次0->1。只支持no-block socket,它效率要比LT更高,但是对编程要求高,如果没有彻底地将缓冲区数据处理完,则会导致缓冲区中的用户请求得不到响应。

事件类型

EPOLLIN

  1. 有连接到达;
  2. 连接中有数据到达;

EPOLLOUT

  1. 连接缓冲区可写;

EPOLLERR

  对应的文件描述符发生错误

EPOLLET

  Epoll工作模式设置为ET模式

连接行为与事件对应关系

连接正常关闭

  客户端主动关闭,或者异常宕机、被kill等,触发EPOLLIN和EPOLLRDHUP,但是不触发EPOLLERR和EPOLLHUP

请求建立连接

  服务端触发EPOLLIN

原创粉丝点击