Chinaunix首页 | 论坛 | 博客
  • 博客访问: 229972
  • 博文数量: 41
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 407
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-27 13:42
文章分类

全部博文(41)

文章存档

2016年(1)

2015年(18)

2014年(22)

我的朋友

分类: LINUX

2014-09-12 15:14:17

    epoll有两种工作模式:水平触发模式(LT)和边沿触发模式(ET)。默认情况下,epoll采用LT模式工作,这时可以处理阻塞和非阻塞套接字,EPOLLET表示可以将一个事件改为ET模式。ET模式的效率比LT模式要高,它只支持非阻塞套接字。ET模式与LT模式的区别在于,当一个新的事件到来时,ET模式下可以从epoll_wait调用中获取到这个事件,可是如果这次没有把这个事件对应的套接字缓冲区处理完,在这个套接字没有新的事件再次到来时,在ET模式下是无法再次从epoll_wait调用中获取这个事件的;而LT模式则相反,只要一个事件对应的套接字缓冲区还有数据,每次epoll_wait都会获取这个事件。因此,在LT模式下开发基于epoll的应用要简单一些,不太容易出错,而在ET模式下事件发生时,如果没有彻底地将缓冲区数据处理完,则会导致缓冲区中的用户请求得不到响应。
阅读(1458) | 评论(0) | 转发(0) |
0

上一篇:upstream机制

下一篇:epoll事件

给主人留下些什么吧!~~