复习 J2SE基本内容 IO NIO AIO 的区别

Noya ·
更新时间:2024-09-21
· 822 次阅读

IO 是面向流的,NIO 是面向缓冲区的
IO 流是阻塞的,NIO 流是不阻塞的
IO 没有选择器,NIO 有选择器
 

 

从编程模式上来看AIO相对于NIO的区别在于,NIO需要使用者线程不停的轮询IO对象,来确定是否有数据准备好可以读了,而AIO则是在数据准备好之后,才会通知数据使用者,这样使用者就不需要不停地轮询了。当然AIO的异步特性并不是Java实现的伪异步,而是使用了系统底层API的支持,

   BIO与NIO一个比较重要的不同,是我们使用BIO的时候往往会引入多线程,每个连接一个单独的线程;而NIO则是使用单线程或者只使用少量的多线程,每个连接共用一个线程。

  NIO的最重要的地方是当一个连接创建后,不需要对应一个线程,这个连接会被注册到多路复用器上面,所以所有的连接只需要一个线程就可以搞定,当这个线程中的多路复用器进行轮询的时候,发现连接上有请求的话,才开启一个线程进行处理,也就是一个请求一个线程模式。

BIO是一个连接一个线程。 NIO是一个请求一个线程。 AIO是一个有效请求一个线程。
作者:甜饼怪



j2se io nio aio

需要 登录 后方可回复, 如果你还没有账号请 注册新账号