1.水平触发(LT)
缓冲区中剩余未读尽的数据会导致epoll_wait()返回,再次调用epoll_wait()时会继续处理此事件,直到缓冲区的数据读完
2.边沿模式(ET)
缓冲区剩余未读尽的数据不会导致epoll_wait()的返回,只有新的事件满足了才会触发,所有要求读事件时必须一次读完
3.LT和ET比较
边沿触发是一种高速的工作模式,只支持非阻塞,当服务器端读取客户端的数据时,不需要读取数据完整性时就可以满足要求时,选用ET模式,提高效率;边沿模式必须与非阻塞一起使用,保证所需数据的完整性,epoll_wait()只触发一次,在while(1)中非阻塞IO读取数据,当缓冲区中数据为空时,才继续调用epoll_wait()处理新事件,这样减少的epoll_wait()的系统调用,减少内核资源消耗,提高系统性能。
09-30
370