首页 / JAVA / Java NIO (一) 初识NIO
Java NIO (一) 初识NIO
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java NIO (一) 初识NIO,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含911字,纯文字阅读大概需要2分钟。
内容图文
Java NIO(New IO / Non-Blocking IO)是从JDK 1.4版本开始引入的IO API , 可以替代标准的Java IO API 。NIO与原来标准IO有同样的作用和目的,但是使用方式和读写方式完全不同,NIO支持面向缓冲区,基于通道的IO操作。NIO以更高效的方式进行文件的读写操作。
NIO的核心组成部分:
· Buffers
· Channels
· Selectors
Channel 和 Buffer
在NIO中数据源以及数据的目的位置都是直接和通道(Channel)接触的。Buffer作为数据的载体,从不同的管道中读取数据或者将数据写入通道。
NIO中的Buffer是和Java中的基本数据类型相对应的,每种基本数据类型都有对应的Buffer实现,除了Boolean类型:
ByteBuffer
CharBuffer
DoubleBuffer
FloatBuffer
IntBuffer
LongBuffer
ShortBuffer
MappedByteBuffer :用于表示内存映射文件,后续详述。
Channel 主要有以下几个,主要包括操作文件的,操作网络的:
FileChannel
DatagramChannel
SocketChannel
ServerSocketChannel
Selector
Selector允许单线程处理多个 Channel。比如某个应用中打开了多个链接,但是多个连接中流量都很低,用Selector可以是用少于连接数的线程来处理多个管道的连接请求任务,可以节约服务器资源,同时提高服务效率。
如下:这是在一个单线程中使用一个Selector处理3个Channel的图示:
要使用Selector,得向Selector注册Channel,然后调用它的select()方法。这个方法会一直阻塞到某个注册的通道有事件就绪。一旦这个方法返回,线程就可以处理这些事件,事件的例子有如新连接进来,数据接收等。
原文:http://www.cnblogs.com/qq-361807535/p/6516953.html
内容总结
以上是互联网集市为您收集整理的Java NIO (一) 初识NIO全部内容,希望文章能够帮你解决Java NIO (一) 初识NIO所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。