码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA NIO(一)

时间:2019-05-01 14:54:29      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:channels   工作   读取   操作   code   图片   com   1.3   ntb   

    

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(一)

标签:channels   工作   读取   操作   code   图片   com   1.3   ntb   

原文地址:https://www.cnblogs.com/sharing-java/p/10790122.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!