【Linux】select,poll,epoll区别
select poll epollselect单个进程打开的文件描述符有上限,为1024或者2048。select对于有响应的事件需要轮询来查找满足要求的事件。每次调用select都需要把文件描述符集合从用户态拷贝到内核态。poll描述fd的集合是链式的,解决了打开文件描述符数量的限制。同样需要轮询满足事件的文件描述符。也需要进行用户态和内核态的文件描述符拷贝。poll是水平触发。epoll使用了mmap内存映射技术和红黑树的数据结构。通过三个函数来监听多个文件描述符,同时不随数量的上升效率呈线性的
复制链接