Java IO

1:首先彻底理解阻塞和异步

在这里插入图片描述

  • 第一阶段:数据准备,等待磁盘数据准备好再读取到内核缓冲区;
  • 第二阶段:数据拷贝,将数据从内核拷贝到进程中;
  • IO Model的区别就是在两个阶段上各有不同的情况。
      是否阻塞说的是第一个阶段,即等待数据准备阶段是否会阻塞;
      是否同步说的是第二阶段,即将数据从内核拷贝到进程这个真实的IO操作阶段是否阻塞;
      阻塞IO、非阻塞IO、IO复用、信号驱动的IO这四种模型都是同步IO模型因为他们四个的区别(阻塞与非阻塞)就在与第一步是否完成后才返回,但第二步都需要当前进程去完成.异步IO呢,就是从第一步开始就返回,直到第二步完成后才会返回一个消息,也就是说,非阻塞能够让你在第一步时去做其它的事情,而真正的异步IO能让你第二步的过程也能去做其它事情。

2:五种IO模型

五种IO模型在这里插入图片描述

3:Java IO(传统的IO,阻塞IO模型—>同步阻塞)

4:NIO(JDK1.4的NIO,IO复用模型—>同步非阻塞)

5:Java AIO(JDK1.7的IO,异步IO模型—>异步非阻塞)

Java AIO总结与示例在这里插入图片描述

6:Java IO 和 NIO的区别

Java IO 和 NIO的区别

  • 1:IO面向字节流 ,NIO面向缓冲区,比如文件的FileChannel;
  • 2:IO是阻塞的,基于Selector的NIO是非阻塞,ServerSocketChannel;
  • 3:IO是同步的,JDK1.7的NIO2(AIO)是异步的.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值