I/O多路转接之epoll
来源:互联网 发布:yum安装本地rpm包命令 编辑:程序博客网 时间:2024/06/05 19:38
epoll的工作原理:
epoll把用户关心的文件描述符上的事件放在内核的一张事件表里,所以不用像select那样,每次都要重复传入文件描述符。但epoll需要一个文件描述符来唯一标识内核中的这个事件表。这个文件描述符用函数epoll_create()来创建。
epoll_wait()函数在一段时间内等待文件描述符中的事件,成功返回就绪事件的个数,失败返回-1。
epoll_ctl()函数用于事件注册,注册要监听的事件类型。
代码:
epoll有两种工作模式:
LT:epoll的缺省工作方式,如果内核告诉你一个文件描述符就绪了,但是你不做任何操作,内核还是会继续通知你的。所以,这种模式编程出错误可能性要小一点。
ET:高速的工作方式,当一个文件描述符就绪了,内核只会通知一次,当事件就绪后,如果这次没有把这个事件对应的套接字缓冲区处理完,在这个套接字中新的事件再次到来时,在ET模式下无法再次从epoll_wait调用中获取这个事件。而LT模式正好相反,只要一个事件对应的套接字缓冲区还有数据,就总能从epoll_wait中获取这个事件。
------------------------------------------------------------------------------------------------------
select ,poll,epoll 之间的比较:
参考《Linux高性能服务器编程》
0 0
- I/O多路转接之epoll
- I/O多路转接之epoll
- I/O多路转接之epoll
- I/O多路转接之epoll
- I/O多路转接之epoll
- I/O多路转接之epoll
- I/O多路转接之epoll
- I/O多路转接之epoll
- I/O多路转接之epoll
- epoll服务器---I/O多路转接之epoll
- I/O多路转接之select、poll、epoll
- 【计算机网络】I/O多路转接之epoll
- Linux下I/O多路转接之epoll
- ]I/O多路转接(二)之epoll服务器
- I/O多路转接之epoll模型
- Linux—I/O多路转接之epoll
- 【Linux】I/O多路转接epoll
- I/O多路转接-----epoll服务器
- json
- 规章制度的处理:既要照章处理,又要考虑特殊情况
- thinking in Java test3.1练习(1)print,println,printf
- Java_io体系之BufferedWriter、BufferedReader简介、源码示例
- TDE on Oracle10.2.0.4
- I/O多路转接之epoll
- hdu5773The All-purpose Zero,1257最少拦截次数
- ajax
- hdu 3487 Play with Chain splay
- 在64位ubuntu中安装代码比较工具beyond compare
- Stage6--Python简单爬虫
- epoll详解
- Swift与OC语言中语法的一些区别
- spring 导入到eclipse