NIO和IO的区别

目录

什么是NIO

NIO工作原理

什么是I/O

NIO和I/O的区别


前段时间在面试的时候,和面试官探讨一个I/O处理数据慢的问题,所以想到了写这篇文章整理一下NIO和I/O。

I - 就是从硬盘到内存 

O - 就是从内存到硬盘

什么是NIO

NIO是在Java1.4中提出的,是面向块的I/O系统,既是系统以块的方式处理数据,每个操作在一步中生产或消费一个数据库,这种处理方式比按照字节处理数据的I/O快很多,而NIO 引入了非阻塞式 IO。

NIO工作原理

1、由一个专门的线程来处理所有的IO事件,并负责分发。

2、事件驱动机制:事件到的时候触发,而不是同步的去监视事件。

3、线程通讯:线程之间通过wait,notify等方式通讯。保证每次上下文切换都是有意义的。减少无谓的线程切换。

什么是I/O

很多时候我们都是用这种I/O系统来处理数据流问题,这是在Java1.4之前的版本就提出了的阻塞式 IO,其提供的是面向流的I/O系统,系统每次一个字节的处理数据,一个输入流产生一个字节的数据,而一个输出流消费一个字节的数据,但是这种面向流的I/O速度很慢。

NIO和I/O的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值