Post

select、poll、epoll之间的区别

select、poll、epoll都是Linux内核提供的IO多路复用机制,主要用于同时监视多个文件描述符的事件。 当有事件发生时再通知用户程序处理。主要区别在于数据结构、查询效率、使用场景。 它们之间的区别如下:

 selectpollepoll
数据结构数组链表红黑树:存监听文件描述符
就绪链表:存就绪文件描述符
获取fd方式遍历遍历事件回调
时间复杂度O(n)O(n)O(1)
数据拷贝4次4次内存映射(mmap)3次
连接数一般1024无限制无限制
原理轮询轮询事件驱动

参考:https://juejin.cn/post/6931543528971436046

This post is licensed under CC BY 4.0 by the author.