Advertisement

epoll下的LT与ET对比

阅读量:

文章结构概览

在epoll机制中,用于处理文件描述符的两种操作方式分别为lt和et,其中lt属于一种效率较高的poll实现方式,而et则代表了epoll的高效运行模式。

lt 当检测到epoll_wait 上有就绪事件的时候,可以不立即执行,当下次再次调用epoll_wait时还会提醒
et 当检测到epoll_wait 上有就绪的事件的时候,就必须处理该事件,否则下次调用epoll_wait 的时候,也不会提醒。

例如: 客户端将数据传输至服务器,
在LT模式中,若服务端未能一次性读取所有数据,epoll_wait将会持续触发通知,直至所有数据被完整读取完毕。
而在ET模式中,若未完成全部数据的读取操作,则epoll_wait将不再发出提醒,此时未读取的数据仍保留在接收方的缓冲区中。

通过执行netstat -napt命令,可以查看接收缓冲区中的相关信息。

以下为LT模式下的代码实现示例

复制代码
    #include <sys/epoll.h>
    #include <poll.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <arpa/inet.h>
    #include <

全部评论 (0)

还没有任何评论哟~