epoll是内核提供给用户进程调用,需要明白epoll解决什么问题。在没有epoll之前,用户进程要知道某个socket是否有数据到来,需要调用一次recev函数。这是一次用户进程到内核的中断处理,对于链接数量少的场景影响不大,如果当前服务器有一万个链接。即使当时只有1个链接有数据到来,但是用户进程就要为每一个连接调用一次,也就要执行一万次用户进程和内核进程的切换,性能就很受影响。而epoll就是内核提供给用户进程的一个接口,用户只需要调用一次,即可返回当时有数据的链接给到用户进程,这样用户就只要处理有数据到来链接了。