原文連線 Java NIO Tutorial
Java NIO 是 Java 1.4 引入的,用於替換標準的 Java IO 和 Java Networking API 的新的 API 介面,提供了一套與標準 IO API 完全不同的操作方式。
NIO 可以理解為 NEW IO 或者 Non-blocking IO。
Java NIO: Channels and Buffers
標準 IO API 是面向位元組流與字元流的,NIO 是面向管道和快取區的,資料總是從管道讀取到緩衝區中,或者從緩衝區中寫回到管道。
Java NIO: Non-blocking IO
Java NIO 開啟非阻塞 IO 操作模式。例如:當一個執行緒從管道讀取資料到緩衝區中時,可以同時去做其他事情,一旦資料寫入緩衝區 ,執行緒可以繼續處理後續的操作。對於從緩衝區寫入資料到管道也是一樣。
Java NIO: Selectors
Java NIO 中有一個 selectors 的概念,具體來說 selectors 就是一個可以監控多個管道時間狀態的物件(比如:開啟連結,接受資料等)。,因此,單執行緒可以做到監控多個管道的資料。
這些元件的工作原理將在本系列的下篇文章 Java NIO overview 中詳細介紹。