BIO、NIO、AIO 有什么区别?

本文将介绍 java 面试题“BIO、NIO、AIO 有什么区别?”。

BIO(Block input output)

BIO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。

当服务端和客户端交互时,如果服务端接收了一个客户端请求,就要为这个客户端一直服务直到结束,否则无法为下一个客户端服务,BIO 就属于同步阻塞 IO。


NIO(New I/O)

NIO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。

NIO 是 Java 1.4 引入的,相对于传统的 IO 来说,N 可以代表 New 的意思,表示新 IO,但更为具体的理解是 Non-blocking 的意思,是一种同步非阻塞的 IO 模型。它提供了 Buffer,Channel,Selector 三大组件。


AIO(Asynchronous I/O)

AIO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。

JDK1.7 中,java.nio.channels 包下增加了多个异步通道,是 NIO 的升级版本,实现 AIO AsynchronousIO 的异步非阻塞 IO 模型。


越是无能的人,越喜欢挑剔别人的错儿。——爱尔兰
1 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号