BIO NIO AIO 是三种网络Socket编程模式
三者区别见下表
| 名词解释 | Jdk支持版本 | 性能 | 编程复杂度 | 设计 |
阻塞IO | >=jdk1.0 | 差 | 简单 | 端对端 | |
非阻塞IO | >=jdk1.4 | 中 | 复杂 | 多路复用 | |
异步非阻塞IO | >= jdk 1.7 | 优 | 较复杂 | React线程模型 |
拿老百姓去银行办理业务为例:
BIO:银行有很多窗口,每个窗口都有人排队办理业务,人只能站在那里等着前面一个人办理完业务,才能开始办理自己的业务
NIO:银行有了叫号系统,老百姓拿号;等叫到他的号,开始到窗口办理业务
AIO:银行有了更好的系统,老百姓告诉银行需要办理什么业务;银行私下把业务办理好了,通知老百姓