java nio 基础

来源:互联网 发布:js中的事件方法有哪些 编辑:程序博客网 时间:2024/06/05 19:27

Java NIO 由以下三部分组成:

Channels:通道部分

Buffers:数据载体部分

Selects:选择器部分(重点应用于网络开发,基于事件驱动类型)


Channel 与Buffers

基本上,所有的NIO 都从Channel 开始。channel有点像流,数据可以从channel到Buffer,也可以从Buffer到Channel.如图所示


Java NIO 主要实现的Channel

1、FileChannel(文件通道)

2、DatagramChannel(网络通信协议通道(UDP))

3、SocketChannel(socket 通道)

4、ServerSocketChannel(网络通信协议通道(TCP))


Java NIO 主要是的的Buffer

1、ByteBuffer(字节Buffer)

2、CharBuffer(字符Buffer)

3、DoubleBuffer(双精度Buffer)

4、FloatBuffer(单精度Buffer)

5、IntBuffer(整形Buffer)

6、LongBuffer(长整形Buffer)

7、ShortBuffer(短整形Buffer)


Java NIO 选择器Select

Select 允许单线程处理多个Channel。如果你的应用打开多个连接(通道),但每个连接(通道)的流量都很低,使用Select就会很方便。比如:在一个聊天服务器中,一个单线程通过Select处理3个Channel.

使用Select ,必须的向Select 注册Channel,然后调用select()方法。这个方法会一直阻塞到某个注册通道事件就绪。一旦这个方法返回,线程就可以处理这些事情。



0 0