企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### I/O复用 / 事件驱动IO select/poll/epoll 都是 I/O 多路复用的具体实现,select 出现的最早,之后是poll,再是 epoll 使用 select 或者 poll 等待数据,并且可以等待多个套接字中的任何一个变为可读。这一过程会被阻塞,当某一个套接字可读时返回,之后再使用 recvfrom 把数据从内核复制到进程中。 它可以让单个进程具有处理多个 I/O 事件的能力。又被称为 Event Driven I/O,即事件驱动 I/O。 IO多路复用(IO Multiplexing)属于一种经典的Reactor模式实现,有时也称为异步阻塞IO,Java中的Selector属于这种模型; 如果一个 Web 服务器没有 I/O 复用,那么每一个 Socket 连接都需要创建一个线程去处理。如果同时有几万个连接,那么就需要创建相同数量的线程。相比于多进程和多线程技术,I/O 复用不需要进程线程创建和切换的开销,系统开销更小 ![](https://img.kancloud.cn/3f/6f/3f6f6653f511485fd55ca1f3290ce499_748x406.png)