老师,我在面试中,问Linux的时候,问到select和epoll的区别??
来源:9-14 专项练习题答案揭晓与解析

BingleyFeng
2020-04-23
很多技术博客直接贴c++代码,我是java技术栈的,不熟悉c++,所以看不懂。我只想了解select和epoll的理论,你嫩不能给我们讲讲?????
写回答
1回答
-
咚咚呛
2020-04-23
从理论上来讲,两者都是操作系统所提供的系统调用函数,select是早期的系统调用函数,epoll是较新的系统提供的系统调用函数。两者会带来性能的不一致,后者的性能更高。
那么为什么后者的性能更高呢?这是因为他们的实现方式是不一样的,前者采用的是轮询的机制,比如说我有十个文件需要监听,那么他会一遍一遍的去检查每一个文件的变更,而后者则不一致,后者采用的是类似事件通知的方式, 只要某一个文件发生变更了,那么就会主动的通知。所以后者的性能是更高的。
你了解Java的话,你应该知道Netty,可以看看和IO相关的源码。00
相似问题