Java NIO系列博客之組件篇

Java NIO包含以下三個核心組件

  • Channels 通道
  • Buffers 緩衝區
  • Selectors 選擇器
    Java NIO有許多組件和類,但是以上三個組件是NIO API的核心。其它的組件,比如管/文件鎖僅僅是以上三個核心組件在連結的時候的工具類。

Channels and Buffers

通道有點類似流,數據的讀寫都是通過通道進行的。

這裏寫圖片描述

下面列舉幾個常見的Channel是實現類

FileChannel
DatagramChannel
SocketChannel
ServerSocketChannel

可見,Channel是在TCP+UDP網絡IO和文件IO之上的。

常見的緩衝區實現類

ByteBuffer
CharBuffer
DoubleBuffer
FloatBuffer
IntBuffer
LongBuffer
ShortBuffer

可見,可以通過IO來發送基本數據類型數據給緩衝區。

Selectors

一個選擇器使得一個線程可以處理多條通道。當我們的引用有許多打開連接的時候這一點是非常有用的。

這裏寫圖片描述

爲了使用選擇器,我們需要給它註冊通道,接着調用它的 select() 方法就可以了。 select() 會阻塞,直到被註冊的通道有一個就緒的事件。只要 select() 方法返回,線程就可以處理這些事件了。比如到來的連接/數據到達時間。

參考資料

http://tutorials.jenkov.com/java-nio/overview.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章