请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

1回答

咚咚呛 2020-04-23 21:34:06

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信