🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 概述 Epoll是poll的改进版,更加高效,能同时处理大量文件描述符,跟高并发有关 ## Poll - Poll本质上是Linux系统调用 - **作用**是监控资源是否可用。 - poll会**轮询**整个**文件描述符集合** ## Epoll - epoll可以做到只查询被内核IO事件**唤醒的集合** ### 实现 - epoll是基于文件描述符的callback函数来实现的,只有发生IO时间的socket会调用callback函数,然后加入epoll的Ready队列。 - 更多实现细节可以参考Linux源码, ### Mmap - 无论是select、poll还是epoll,他们都要把文件描述符的消息送到用户空间 - 这就存在内核空间和用户空间的内存拷贝。其中epoll使用mmap来共享内存,提高效率