epoll多路复用IO 高并发
epoll多路复用是专门用来处理高并发的,在linux多路复用中有多种,
有epoll,select,其中select是在linux和windows中通用的,其中select用来做过超时处理,本身多路复用,为了高并发,目前只推荐
使用epoll在linux中,因为其他方案没有他的效率高,而且代码复杂度
不比他简单,epoll主要解决的问题是:
处理大量并发连接中,只有少量活跃的,(就是很多人连接过来,但是他们都没有断开)只有少数是活跃的, 如果都活跃那epoll也没提高效率.
web服务器处理的并发数量是有限的。
epoll连接有两种方式:一种是水平触发,LT(level triggered)他其实和select一样,有一个区别是select他是要遍历所有的路判断值,然后会导开销很大, 他的效率好select差不多.
还有一种是边缘触发,(edge-triggered)数据发生变化,有一个数据进来,它就会触发。
