这三个词都在描述程序和操作系统打交道时处理 IO 的方式。想快速区分,重点看线程是不是要一直等、数据准备好后谁来通知、以及并发连接多时扩展成本高不高。
BIO 是什么
BIO 是阻塞式 IO。线程发起读取后会一直等到结果返回,模型直观,但连接一多就容易堆线程,适合简单或并发不高的场景。
NIO 解决了什么问题
NIO 支持非阻塞和多路复用,一个线程可以管理多个连接,只在连接真正就绪时处理事件,因此更适合高并发网络编程。
AIO 又往前走了一步吗
AIO 强调异步完成通知。发起 IO 后线程不需要自己轮询,等系统在操作完成时回调结果即可。不过实际采用时,还要看语言生态和底层实现成熟度。
一句话记忆
BIO 是线程等结果,NIO 是线程等事件,AIO 是结果好了再主动通知线程。
正文完




