JAVA NIO
Posted sharing-java
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA NIO相关的知识,希望对你有一定的参考价值。
1 NIO概述
1.1NIO(new IO)是一个可以替代java IO API的API,NIO提供了与标准IO不同的工作方式,标准IO是基于字节流和字符流进行操作的,而NIO是基于channel和Buffer进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写到通道中,方式如例图示,JAVA NIO的几个核心组成部分是channels,Buffers,Selectors。
1.2NIO中的channel有好几种类型包括:FileChannel,DatagramChannel,SocketChannel,ServerSocketChannel这些channel涵盖了UDP,TCP,以及文件IO;Buffer包括ByteBuffer,CharBuffer,DoubleBuffer,FloatBuffer,IntBuffer,LongBuffer,ShortBuffer,这些buffer,覆盖了所有的基本数据类型,还有一种映射MappedByteBuffer,在此我们不做细说;Selector,selector允许单线程处理多个Channel,如下图样例,要使用Selector,得先向Selector注册channel,然后调用selector()方法。这个方法会一直阻塞到某个注册的通道有事件就绪。一旦这个方法返回,线程就可以处理这些事件,事件的例子有如新连接进来,数据接收等。
1.3和传统IO相比, NIO是非阻塞 IO
以上是关于JAVA NIO的主要内容,如果未能解决你的问题,请参考以下文章