java NIO 原理解析之学习笔记

关键抽象

  1.Buffer缓冲区

   NIO数据传递模型,是一个连续的内存区域、所有数据传承均通过buffer类处理;NIO提供了字符串、整形、字节、堆等多种缓冲区。

  2.Channel(通道)

   NIO把它支持的I/O对象抽象为Channel。它模拟了通信连接,类似于原I/O中的流(Stream),用户可以通过它读取和写入数据。目前已知的实例类有SocketChannel、ServerSocketChannel、DatagramChannel、FileChannel等。

  3.SelectionKey事件模型

    NIO的服务端通过一个专门的线程来处理IO相关事件,采用双向通道进行数据传输,而不是单向的通道,通过在通道上注册我们感兴趣的事件来完成一系列操作。

   事件模型如下:  

事件KEY

备注

SelectionKey.OP_ACCEPT

服务器接受客户端请求

SelectionKey.OP_CONNECT

客户端连接服务器事件

SelectionKey.OP_READ

读取事件

SelectionKey.OP_WRITE

写入事件

猜你喜欢

转载自www.cnblogs.com/march74/p/11123535.html