博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java NIO
阅读量:7094 次
发布时间:2019-06-28

本文共 767 字,大约阅读时间需要 2 分钟。

1.简述

java nio是java SE 1.4引进的非阻塞IO,提供了一系列的新的API,不同于之前的阻塞IO。在缓冲管理、可伸缩的网络和文件IO、字符集支撑方面得到了显著提高。

主要位于java.nio包中,nio模块主要由以下几个部分组成:

  • Buffer(缓冲区)
  • Channel(通道)
  • Selector(选择器)
  • Charset(字符集)

下面就从这个几个核心来简单说说java的nio,但这里不对四大核心做过多详细的说明和操作,这部分会在后续的文章中逐一详述。

2.Buffer

Buffer本质上是一块连续的内存空间,用来作为数据容器。与传统的阻塞IO不同,在阻塞IO中数据都是面向流的读写,但是在nio中都是基于Buffer进行数据的读写操作,即从Buffer中读数据和将数据写进Buffer,如下图:

3.Channel

Channel代表着连接的实体可进行IO操作。通道的本质就是一种实体,可连接到IO操作。有点类似传统IO中的Stream,在nio中具有多种类型,后续文章中会详细说明。

Channel与Stream不同,它是双向的,即可以进行读写,而Stream是单向的,要么读要么写。
Channel的读写都是非阻塞的,但是Stream中的读写是阻塞。

4.Selecttor

Selector代表着多路选择器,是多路复用应用的关键所在。上述的可选择性通道(Selectable Channel)都可以注册到Selector上,然后由Selector监听各个Channel中的就绪事件,进行相应处理。

以上是nio中各个核心模块的简单说明和示意图,关于其详细的特性和api后续中会有一系列文章进行解释。

参考

转载于:https://www.cnblogs.com/lxyit/p/9113022.html

你可能感兴趣的文章
封装jQuery Validate扩展验证方法
查看>>
轮播组件iceSlider
查看>>
Spark编程指南
查看>>
python入门语法总结 zz
查看>>
向GridView的模板列绑定OnClientClick的函数时出现了奇怪的问题
查看>>
Android之代码创建布局
查看>>
xss实例-输出在<script></script>之间的情况
查看>>
Jquery操作table
查看>>
高并发处理案例
查看>>
在matlab中clear,clc,clf,hold作用介绍
查看>>
[物理学与PDEs]第1章习题8 磁场分布 $\ra$ 电流分布
查看>>
技术书单整理
查看>>
c语言开源项目--SQLite学习资料总结
查看>>
Repeater控件
查看>>
JS模板引擎
查看>>
JavaScript之表单验证讲解
查看>>
MSMQ 消息队列
查看>>
java核心知识点学习----多线程并发之线程同步
查看>>
JSP编程中常用的JavaScript技术(转载)
查看>>
jquery easy ui 学习 (5) windowlayout
查看>>