epoll
源码解读
触发方式
水平触发
当我们没有一次性读取完缓冲区中的全部数据时,那么在下次调用epoll_wait时还会通知我们进行读写,而并没有发生中断信号
关心缓冲区的状态
边缘触发
当我们读写一次缓冲区后,无论是否读写完缓冲区中的所有数据,都会等到下一次发生中断信号时才会通知我们进行读写
关心缓冲区状态的变化
触发方epoll、accept触发模式及阻塞方式的选择式的选择
select(),poll()模型都是水平触发模式,信号驱动IO是边缘触发模式,epoll()模型即支持水平触发,也支持边缘触发,默认是水平触发
从表象看epoll的性能最好,但是在连接数少,并且连接都十分活跃的情况下,select和poll的性能可能比epoll好,毕竟epoll的通知机制需要很多回调函数来完成。
https://www.2cto.com/kf/201612/581370.html

浙公网安备 33010602011771号