欢迎光临散文网 会员登陆 & 注册

epoll水平模式与边缘模式的区别

2023-05-04 15:43 作者:机器朗读  | 我要投稿

在 epoll 中,水平触发(Level-Triggered,LT)和边缘触发(Edge-Triggered,ET)是两种不同的事件触发模式。它们的区别在于:

  1. 水平触发模式(LT):当被监听的文件描述符上有可读或可写事件发生时,每次 epoll_wait() 调用都会返回该文件描述符上的就绪事件。如果应用程序没有立即处理该事件,下次 epoll_wait() 调用时仍会返回该事件。也就是说,如果该文件描述符上一直有事件没有被处理,epoll_wait() 将会一直返回该文件描述符上的事件,直到应用程序处理了该事件。

  2. 边缘触发模式(ET):当被监听的文件描述符上有可读或可写事件发生时,只有在该文件描述符状态发生变化时,epoll_wait() 才会返回该事件。也就是说,如果该文件描述符上有事件未被处理,下次 epoll_wait() 只会在该文件描述符状态发生变化时返回该事件,而不是在每次调用 epoll_wait() 时都返回该事件。

总之,水平触发模式适合于使用阻塞 I/O 的情况,而边缘触发模式适合于使用非阻塞 I/O 和基于事件驱动的编程模型。边缘触发模式对应的处理方式更加高效,但对编程模型的要求也更高。


epoll水平模式与边缘模式的区别的评论 (共 条)

分享到微博请遵守国家法律