NIO.2-简介
2016-11-26 本文已影响34人
甚了
More New I/O
Java 7 中的 More New I/O APIs,通过在 java.nio.channels 包中增加四个异步通道,从而增强了 Java 1.4 中的 New I/O APIs(NIO):
- AsynchronousSocketChannel
- AsynchronousServerSocketChannel
- AsynchronousFileChannel
- AsynchronousDatagramChannel
异步通道 提供支持连接、读取、以及写入之类非锁定操作的连接,并提供对已启动操作的控制机制。
这些类在风格上与 NIO 通道 API 很相似。他们共享相同的方法与参数结构体,并且大多数对于 NIO 通道类可用的参数,对于新的异步版本仍然可用。主要区别在于新通道可使一些操作异步执行。
异步通道 API 提供两种对已启动异步操作的监测与控制机制:
- 第一种 是通过返回一个
java.util.concurrent.Future
对象来实现,它将会建模一个挂起操作,并可用于查询其状态以及获取结果。 - 第二种 是通过传递给操作一个新类的对象,
java.nio.channels.CompletionHandler
来完成,它会定义操作完毕后所执行的处理程序方法。每个异步通道类为每个操作定义 API 副本,这样可采用任一机制。