全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

epoll、poll、select有哪些区别?

发布时间:2023-10-11 16:05:07
发布人:xqq

一、epoll、poll、select的区别

1、内核支持

select是最古老的多路复用机制,它早于Linux的内核版本2.0,已经成为了Unix网络编程中经典的多路复用机制。poll是在Linux内核2.1.15中引入的一种多路复用机制,它比select更加高效。而epoll是在Linux内核2.5.44中引入的一种更加高效的多路复用机制,它是目前最常用的多路复用机制之一。

2、系统调用数量

select和poll在使用时,每次都需要将所有待监视的文件描述符从用户空间复制到内核空间,而epoll使用了事件驱动的方式,将只有活跃的文件描述符加入到内核事件表中。因此,在处理大量文件描述符时,epoll比select和poll更快,能够提供更高的并发性和更好的性能。

3、文件描述符数量

select和poll在处理大量的文件描述符时,随着文件描述符数量的增加,性能会呈现出线性下降的趋势。而epoll能够高效地处理大量的文件描述符,并且在文件描述符数量很大时,性能损失很小。

4、数据结构

select和poll将所有待监视的文件描述符保存在一个数据结构中,而epoll将文件描述符分散到不同的事件集合中。因此,在处理大量文件描述符时,epoll的效率比select和poll更高。

5、触发模式

select和poll是水平触发(level-triggered)模式,即当文件描述符可读可写时,每次调用select或poll都会通知应用程序。而epoll支持水平触发和边缘触发(edge-triggered)两种模式,边缘触发只会通知应用程序一次,直到下一次事件发生时才会再次通知。边缘触发模式在处理大量的文件描述符时,能够提高效率。

#it技术干货

相关文章

什么是SEO?

什么是SEO?

2023-10-11
transform和opacity动画为什么性能好?

transform和opacity动画为什么性能好?

2023-10-11
web页面中的布局位置到底是什么?

web页面中的布局位置到底是什么?

2023-10-11
gulp与webpack的区别?

gulp与webpack的区别?

2023-10-11

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取