epoll中LT和ET模式的区别

      epoll对于文件描述符的操作有两种模式:LT模式是默认的工作模式,这种模式下epoll相当于一个效率较高的poll。当往epoll内核事件表中注册一个文件描述符上的EPOLLET事件时,epoll将以ER模式来操作改文件描述符,ET模式是epoll的高效工作模式。

       对于采用LT工作模式的文件描述符,当epoll_wait监测到其上有事件发生并将此事件通知应用程序后,应用程序可以不立即处理该事件。这样,当应用程序下一次调用epoll_wait时,epoll_wait还会再一次向应用程序通知此事件,直到该事件被处理。

       而对于采用ET模式的文件描述符,当epoll_wait监测到其上有事件发生并将此事件通知应用程序后,应用程序必须立即处理该事件,因为后续的epoll_wait调用将不再向应用程序通知这一事件。可见ET模式在很大程度上降低了同一个epoll事件被重复调用触发的次数,因此效率要比LT模式高。

你可能感兴趣的:(linux)