NIO原理

阻塞和非阻塞:
阻塞:访问数据时候,数据未准备好,就需要等待,直至数据准备好过后,才去处理其他事情,否则一直等待下去。
非阻塞:访问数据时候,数据未准备好,就直接返回不进行等待。

同步和异步方式:
同步:在获取到返回结果之前不可以进行其他操作。
异步:不用等待返回结果直接进行下一步操作。

IO和NIO的区别
IO : 从硬盘到内存的读取,面向流的阻塞IO
NIO:从内存到硬盘的读取,面向缓存的非阻塞IO,通过选择器进行触发。
(流:是一个抽象概念,当程序需要从某一个数据源读入数据的时候,就会开启一个数据流。)


IO 面向流,意味着它必须按照自己的顺序去读取数据直至全部读取成功,不可以前后移动流中数据。就像是从一个水缸(数据源)通过水管(数据流)将水导出。所以 IO 是阻塞的,应为在导出水的过程中,这个水管无法去做别的事情。
NIO 面向缓存,会将数据读取到一个稍后会进行处理的缓冲区中,需要时候可以在缓冲区中移动。增加了处理的灵活性。NIO是非阻塞的模式。一个线程请求写入一些数据到某通道的时候,不需要等待它完全写入,这个线程可以同时去做别的事情,所以一个单独的线程可以管理多个输入和输出通道。选择器就是用来实现单线程管理多个通道的,只需要注册多个通道使用一个选择器。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值