Java NIO 概述

Java NIO 是由以下几个核心部分组成

  •  Channles

  • Buffers

  • Sellectors

虽然还有其他类和组件,只不过是这三个核心组件的工具类而已。

Channel 和 Buffer

    基本上,所有的IO在NIO中都是从一个Channle开始的。Channle有点像流。数据可以从Channle读到Buffer中,也可以从Buffer写到Channel中。

    Channel 和Buffer 有好几种类型,

    下面是Java NIO中的一些主要Channle的实现。

  • FileChannel

  • DatagramChannel

  • SocketChannel

  •  ServerSocketChannel  

    这些通道涵盖了UDP和TCP网络IO,以及文件IO。

    Buffer实现。

        ByteBuffer

        CharBuffer   

        DoubleBuffer

        FloatBuffer

        IntBuffer    

        LongBuffer    

        ShortBuffer    

        这些Buffer覆盖了你能通过IO发送的基本数据类型:Byte,short,int,long,float,double和char。


Selector

    Selector允许单线程处理多个 Channel。如果打开了多个链接(通道),但每个连接的流量都很低,使用Selector就会很厉害。

    要使用Selector,得向Selector注册Channel,然后调用它的select()方法。这个方法会一直阻塞到某个注册的通道有事件就绪。一旦这个方法返回,线程就可以处理这些时间,事件的例子有如新的连接进来,数据接收等。


你可能感兴趣的:(Java NIO 概述)