linux epoll 简介
2016-05-19 21:04
211 查看
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:这个博客还没有写完,待续。
相关文章推荐
- Ubuntu中查看硬盘分区UUID的方法(所有Linux目录的解释)
- 操作系统知识(1)--Linux启动过程
- LINUX——查看操作系统/CPU/内存信息
- centos6.7环境下kvm虚拟机之virt-install和virsh及virt-manager工具的使用
- centos6.7环境下kvm虚拟机之virt-install和virsh及virt-manager工具的使用
- linux fedora23 相关操作
- zabbix[1]-入门与初试2
- linux防火墙开发实例 获取FTP账号密码
- 解决Linux MySQL报错ERROR 2002
- Arch linux 安装笔记
- Linux操作系统基础解析之(二)——操作系统由来
- Linux头文件库文件搜索路径
- 【Supervisor】Linux 后台进程管理利器
- java读properties的通用类,兼容linux和windows
- CentOS7安装iptables防火墙
- Linux进程管理与调度-之-目录导航
- 每天一个Linux命令(21)find命令_xargs参数
- CentOS 6.5/6.6 安装mysql 5.7 最完整版教程
- Linux_Timer
- 让锐捷客户端在linux平台飞