高并发是大型架构核心,下面我详解高并发IO系统@mikechen
高并发场景
高并发场景里「BIO→NIO→AIO」不是简单按年代排队升级,而是按业务特点 + 团队成本选模型。

首先,BIO(Blocking IO)概念简单:每个连接通常对应一个线程,读写操作阻塞直至完成。

其优点是编程模型直观、调试容易,适合连接数与并发量较低、业务处理耗时占主导的场景。
缺点在于线程资源消耗大、上下文切换频繁、扩展性差。当连接数量增长到数千或以上时,BIO 会成为瓶颈。
其次,NIO(Non-blocking IO / 多路复用)。

通过复用机制(如 epoll、kqueue、select)在单线程或少量线程中管理大量连接。
只有就绪事件才进行读写,从而显著降低线程数与上下文切换开销。
NIO 适用于高并发、短连接或以网络 IO 为瓶颈的场景。
最后,AIO(Asynchronous IO)提供真异步的操作。
IO 请求提交后由内核或框架异步完成,结果通过回调或事件通知返回。
AIO 在理论上能进一步降低线程占用和延迟,适合极高并发和追求最小延迟的场景。
实现上依赖操作系统对异步 IO 的支持(不同平台能力差异显著),且回调与状态管理增加实现复杂度与调试难度。
如何选择?

一句话结论:低并发、逻辑复杂:BIO 。
高并发、长连接、网关/IM/推送:首选 NIO(基于 selector 的多路复用,比如 Netty、Tomcat NIO)。
极高并发 + 极低延迟,对性能敏感且平台支持好。
可以考虑 AIO/Proactor,但复杂度最高。