网络面试题:epoll的工作模式

epoll的工作模式

epoll的工作模式一共有两种:LT(水平触发)和ET(边缘触发)

  • 默认情况下,epoll采用LT模式工作,该模式支持阻塞和非阻塞套接字,如果想采用ET模式,可以使用EPOLLET参数。
  • ET模式只支持非阻塞套接字,其效率要高于LT模式,两者的区别在于,当一个新的事件到来时,LT、ET模式下都可以通过epoll_wait方法来获取到这个事件,但是如果这次没有把这个事件对应的套接字缓冲区处理完,在这个套接字没有新的事件再次到来时:
    • 在ET模式下是无法再次从epoll_wait方法中获取到这个事件的;
    • 而LT模式则可以再次获取到,进而再次进行处理,其只要一个事件对应的套接字缓冲区还有数据,就总能从epoll_wait中获取到这个事件,因此,如果采用ET模式进行开发时,要特别注意,如果没有彻底的将缓冲区中的数据处理完,则会导致缓冲区中的用户请求得不到响应。

总而言之就是ET模式下如果将该事件从rdlist取出了,那么将不会第二次获取了。但是LT模式下当还有新的事件来到时,还会将其放入rdlist。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值