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 副本,這樣可采用任一機制。