select、poll、epoll对比
select、poll、epoll是Linux系统I/O多路复用的实现机制手段,通过前面的TCP编程,对三者做一个对比总结表。
| select | poll | epoll | |
|---|---|---|---|
| 时间复杂度 | O(n) | O(n) | O(1) | 
| 监听文件描述(fd)符数目 | 有限(默认1024) | 理论上无限 | 理论上无限 | 
| 监听方式 | 轮询fd集合 | 轮询fd集合 | 通过事件表 | 
| 触发方式 | LT | LT | LT & ET | 
| 特点 | 每次调用,都需把fd集合从用户态拷贝到内核态,且需要遍历所有fd集合 | 每次调用,都需要遍历所有fd集合 | 事件触发,无需遍历所有fd集合 | 
| 适用场合 | 少量fd监听,且fd十分活跃 | 少量fd监听,且fd十分活跃 | 大量fd监听,或者fd活跃程度不高,如服务器端 | 
例程代码
【1】select
  https://blog.csdn.net/qq_20553613/article/details/100026164
【2】poll
  https://blog.csdn.net/qq_20553613/article/details/100047078
【3】epoll
  https://blog.csdn.net/qq_20553613/article/details/100067052
参考
【1】https://blog.csdn.net/lsgqjh/article/details/65629609
【2】https://www.cnblogs.com/aspirant/p/9166944.html
【3】https://blog.csdn.net/zgege/article/details/81632990
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号