作者:June1993
链接:https://www.nowcoder.com/discuss/357511?type=2&order=3&pos=6&page=1
来源:牛客网
Java NIO :同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。
Java AIO(NIO.2) : 异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理,
NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器。
AIO方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器。
BIO是一个连接一个线程。(连接阻塞,Java处理IO同步)
NIO是一个请求一个线程。(没有请求时,连接不占用线程,连接非阻塞,Java处理IO同步)
AIO是一个有效请求一个线程。(连接非阻塞,Java处理IO委托给操作系统,异步进行处理)
https://zhuanlan.zhihu.com/p/34408883