linux epoll 简介

1. linux epoll简介

本文简单介绍linux epoll功能,大部分内容是man 7 epoll的翻译,一部分是自己的理解;如果有人觉得不对,敬请指正。

epoll实现了I/O事件通知功能,具体功能类似于poll(你可以认为是扩展的poll–extended poll):
监视多个文件描述符,并监测其I/O事件是否发生,比如可读、可写等。
它对监测大规模的文件描述符有很好的扩展性。
epoll 提供如下API:
(I)epoll_create 创建epoll实例,并返回一个引用到该实例的文件描述符(内核新增epoll_create1对epoll_create的功能做了扩展);
(II)epoll_ctl 将我们感兴趣(需要监测)的文件描述符注册到epoll实例;
(III)epoll_wait等待I/O事件,如果没有感兴趣的I/O事件发生,阻塞调用线程 (阻塞的时间和具体参数有关系)。

其中 需要注意的是,epoll API 的使用分为两种情况:
(I)边缘触发(Edge-Triggered Interface)
(II)水平触发(Level-Triggered Interface)
二者区别下文再继续分析。

和epoll相关的数据结构和函数定义在sys/epoll.h文件里。

2. 水平触发(Level-triggered)和边缘触发(Edge-triggered)

epoll 事件分发接口分为两种,一个是水平触发(LT),一个是边缘触发(ET)。两种机制的区别如下所述。假定场景如下:

PS:这个博客还没有写完,待续。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值