IO 多路复用(IO Multiplexing) 是一种高效的 I/O 模型,它允许单个线程同时监控多个文件描述符(File Descriptor, FD)(通常是网络连接/Socket)。 简单来说,就是用一个线程来处理成千上万个并发连接。 为了让你彻底理解,我们可以从“生活案例”、“技术演进”和“底层实现”三个角度来解释。 --- 1. 生活案例:餐厅的点餐服务 想象一个餐厅(服务器)要接待很多顾客(客户端连接): 阻塞 I/O (BIO) - 多线程模型: 做法: 餐厅为每一桌顾客都专门配一名服务员。服务员站在桌边,直到顾客点完菜才离开。 缺点: 顾客如果不点菜(连接空闲),服务员就傻站着(线程阻塞)。如果来了 1000 桌客人,就需要 1000 个服务员,老板(CPU/内存)会破产。 非阻塞 I/O (NIO) - 轮询模型: 做法: 只有一名服务员。他不停地在所有桌子之间跑来跑去,问第一桌:“点好了吗?”,问第二桌:“点好了吗?”…… 缺点: 即使所有顾客都没准备好,服务员也跑断了腿(CPU 空转,利用率极低,浪费资源)。 IO 多路复用 - 事件驱动模型: 做法: 只...