-
Selector 的实现方案:
- select 当这些链接出现具体的某个状态时,只是知道已经准备就绪,但不知道具体是哪一个链接已经就绪,每次调用都进行线性遍历所有链接,时间复杂度为O(n),并且存在最大连接数限制
- poll 同上,但是底层采用链表结构,所以不存在最大链接数限制
- epoll 采用事件通知方式,当某个链接就绪,能够直接精准通知,因为在内核实现中epoll是根据每个文件描述符上的callback函数实现,只要就绪就会回调callback回调函数,实现精准通知,但只有linux支持该方式,事件复杂度为O(1),Java在Linux环境中采用的就是这种模式



