老师,我在面试中,问Linux的时候,问到select和epoll的区别??

来源:9-14 专项练习题答案揭晓与解析

BingleyFeng

2020-04-23

很多技术博客直接贴c++代码,我是java技术栈的,不熟悉c++,所以看不懂。我只想了解select和epoll的理论,你嫩不能给我们讲讲?????

写回答

1回答

咚咚呛

2020-04-23

从理论上来讲,两者都是操作系统所提供的系统调用函数,select是早期的系统调用函数,epoll是较新的系统提供的系统调用函数。两者会带来性能的不一致,后者的性能更高。
那么为什么后者的性能更高呢?这是因为他们的实现方式是不一样的,前者采用的是轮询的机制,比如说我有十个文件需要监听,那么他会一遍一遍的去检查每一个文件的变更,而后者则不一致,后者采用的是类似事件通知的方式, 只要某一个文件发生变更了,那么就会主动的通知。所以后者的性能是更高的。
你了解Java的话,你应该知道Netty,可以看看和IO相关的源码。

0
0

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程