美文网首页
网络模型之水平触发&边缘触发

网络模型之水平触发&边缘触发

作者: Alen_ab56 | 来源:发表于2022-10-18 17:52 被阅读0次

Level_triggered(水平触发):

当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如果这次没有把数据一次性全部读写完(如读写缓冲区太小),那么下次调用 epoll_wait()时,它还会通知你在上没读写完的文件描述符上继续读写,当然如果你一直不去读写,它会一直通知你!!!如果系统中有大量你不需要读写的就绪文件描述符,而它们每次都会返回,这样会大大降低处理程序检索自己关心的就绪文件描述符的效率!!!

Edge_triggered(边缘触发):

当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如果这次没有把数据全部读写完(如读写缓冲区太小),那么下次调用epoll_wait()时,它不会通知你,也就是它只会通知你一次,直到该文件描述符上出现第二次可读写事件才会通知你!!!这种模式比水平触发效率高,系统不会充斥大量你不关心的就绪文件描述符!!

select(),poll()模型都是水平触发模式,信号驱动IO是边缘触发模式,epoll()模型即支持水平触发,也支持边缘触发,默认是水平触发。

在Netty中可以很方便的进行指定

bootstrap.option(EpollChannelOption.EPOLL_MODE,EpollMode.EDGE_TRIGGERED)

相关文章

  • epoll 边沿触发和水平触发

    1. epoll 边沿触发和水平触发 对于epoll有两种触发模式:水平触发LT和边缘触发ET,其中边缘触发必须需...

  • epoll的水平触发和边缘触发

    参考文章:java nio使用的是水平触发还是边缘触发?参考文章:netty中的水平触发和边缘触发 我自己总结下吧...

  • 水平触发与边缘触发

    描述符的就绪状态有两种判断方法: 边沿触发和水平触发。 水平触发 我认为这是“拉”模式或“民意调查”模式。为了确定...

  • 边缘触发与水平触发

    定义 水平触发(level-trggered) 只要文件描述符关联的读内核缓冲区非空,有数据可以读取,就一直发出可...

  • 水平触发和边沿触发

    水平触发LT(Level Trigger)边缘触发ET(Edge Trigger) epoll有EPOLLLT和E...

  • 4.2.3、epoll:水平触发与边缘触发

    select和poll都只提供了一个函数:select或者poll函数。而epoll提供了三个函数,epoll_c...

  • Netty中的水平触发和边缘触发

    在非阻塞IO中,通过Selector选出准备好的fd进行操作。有两种模式,一是水平触发(LT),二是边缘触发(ET...

  • java-水平触发和边缘触发区别

    转载自:https://www.jianshu.com/p/7eaa0224d797 select和poll都只提...

  • 《上瘾模型》之触发

    最近在看王飞推荐的一本书《上瘾&HOOKED》,感觉以前不知道为什么做的一些设计渐渐有了依据。一切规划/功能定义和...

  • epoll两种触发方式

    # 简介 两种触发方式分别是:边沿触发(Edge Triggered)和水平触发(Level Triggered,...

网友评论

      本文标题:网络模型之水平触发&边缘触发

      本文链接:https://www.haomeiwen.com/subject/gjzezrtx.html