理解 select poll epoll

Posted 2016java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解 select poll epoll相关的知识,希望对你有一定的参考价值。

 

举例说明:老师收学生作业,相当于应用层调用I/O操作。
 
1、老师逐个收学生作业,学生没有做完,只能阻塞等待,收了之后,再去收下一个学生的作业。这显然存在性能问题。
 
2、怎么解决上面的问题?
老师找个班长,班长负责收作业,班长的做法是:遍历问学生作业写好了吗,写好的,收起来交给老师。休息一会,再去遍历。。。
这个班长就是select。 
 
 
 
这存在问题,
1、这个班长还有一个能力问题,最多只能管理1024个学生。
2、很多学生的作业没有写好,而且短时间写不好,班长还是不停地遍历去问,影响效率。
 
3、怎么解决问题1班长的能力问题?
换一个能力更强的班长,可以管理更多的学生,这个班长就是poll。
 
4、怎么解决问题1、2,存在的能力问题和效率问题?
换一个能力超级强的班长,可以管理无限多的学生,同时班长的做法是:遍历一次所有的学生,如果作业没有写完,告诉学生写好之后,放在一个固定的地方。这样的话,班长只需要定期到这个地方取作业就好了。这就是epoll。

以上是关于理解 select poll epoll的主要内容,如果未能解决你的问题,请参考以下文章

select,poll,epoll,selectors

select,poll和epoll

深度理解selectpoll和epoll

select epoll poll

Linux系统I/O模型及select、poll、epoll原理和应用

selectpoll和epoll机制