面试题:问select/poll/epoll有什么区别?

select:表

​ 1.最多只能监听1024个文件描述

​ 2.用户空间的表会被清空,需要反复构造文件描述符的表,需要反复从用户空间向内核空间拷贝表效率低

​ 3.当select进程休眠被唤醒之后,需要再次编译文件描述符的表,找出准备好的文件描述符,效率比较低。

poll:结构体数组

​ 1.poll监听的文件描述符没有个数限制

​ 2.poll的表不会被清空,不需要反复拷贝文件描述符,效率比较高。

​ 3.当poll进程休眠被唤醒之后,需要再次编译文件描述符的表,找出准备好的文件描述符,效率比较低。

epoll:红黑树

​ 1.epoll监听的文件描述符没有个数限制

​ 2.epoll的表不会被清空,不需要反复拷贝文件描述符,效率比较高。

​ 3.当epoll进程休眠被唤醒之后,能直接拿到准备好的文件描述符,不需要遍历,效率高。

你可能感兴趣的:(面试考试题,网络,linux,服务器)