综述: 事件
三者的返回值都是就绪的文件描述符的数量 it
返回0表示没有事件发生。 event
每次调用select前都须要重置fd集合。 file
poll会修改pollfd结构体的revents参数,因此不用重置pollfd事件集。 select
因为每次select和poll调用都返回整个用户注册的事件集合(包括就绪+未就绪) im
因此时间复杂度O(N). img
epoll每次都直接从内核事件表中取得用户注册的事件,无须反复从用户空间读入这些事件。 集合
时间复杂度O(1). epoll
poll和epoll_wait分别用nfds和maxevents来指定最多监听多少个文件描述符和事件。 文件
这两个数值均可以达到系统最大值,65535 cat/proc/sys/fs/file-max
select和poll只能工做在相对低效的LT模式,而epoll能够工做在ET模式。而且后者还支持EPOLLONESHOT事件。
select和poll采起轮询的工做方式,epoll采用回调方式,适用于链接数量多,可是活动链接比较少的状况。
~~~~~~~~~~~~~~~~