Java NIO学习笔记(一)NIO概述

概述:

Java NIO是JDK1.4以后出现的新IO,它是同步的非阻塞IO,它是面向缓冲区的IO,之前学习过的老IO叫做BIO,是同步阻塞IO,面向流。
什么是同步非阻塞呢?
阻塞其实说的是一种线程的状态,在BIO中,当一次IO读或者写的时候,当前线程是处于一个阻塞的状态,也就是当前线程不能干其他事情,只能等待读或者写完成。而非阻塞IO就是当线程发送一个读的命令之后,它会立即返回一个值,这个值可能为空,也可能只有部分数据,非阻塞的好处就是线程不用等待本次IO彻底读完,它可以去做其他的事情,这样就提高了线程的利用效率。

NIO的组件:

在NIO中,主要有三个组成部分
1、Channels(通道) 2、Buffers(缓冲区) 3、Selectors(选择器)
这里的通道类似与BIO的流,NIO想读取和写入数据都是通过这个通道来完成的,但是通道又需要通过缓冲区,也就是说从通道里读取的数据要放在缓冲区中,然后再从缓冲区中读取出来,写数据是先将数据写入缓冲区,再将缓冲区的数据写入通道之中。

Selector的作用主要是能让单个线程通过它来连接多个通道。


12350543-cb0f1c53beaf1e4c.png
Selector示例
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值