NIO family 一覽

一、Buffer緩衝區

用戶數據處理的基礎單元,客戶端發送與接收數據都需要通過Buffer轉發進行

 

二、Channel通道

類似於流;但不同於IN/OUT Stream;流具有獨佔性與單向性;通道則偏向於數據的流通多樣性

 

三、Selectors選擇器

處理客戶端所有事件的分發器

 

四、Charset擴展部分

Charset字符編碼:加密、解密

原生支持的、數據通道級別的數據處理方式,可以用於數據傳輸級別的數據加密、解密等操作

 

五、NIO-Buffer

Buffer包括

ByteBuffer、CharBuffer、ShortBuffer、IntBuffer、LongBuffer、FloatBuffer、DoubleBuffer

與傳統不同,寫數據時先寫到Buffer->Channel;讀則反之

與傳統不同,寫數據時先寫到Buffer->Channel;讀則反之

爲NIO塊狀操作提供基礎,數據都按“塊”進行傳輸

一個Buffer代表一“塊”數據

 

 

六、NIO-Channel

可從通道中獲取數據也可輸出數據到通道;按“塊” Buffer進行

可併發可異步讀寫數據(但是當數據是有序時,如果使用多線程中間加了其它的數據,可能會導致數據不可用。所以,一般讀是一個線程,寫是一個線程)

讀數據時讀到Buffer,寫數據則必須通過Buffer寫數據

包括:FileChannel、SocketChannel、DatagramChannel等

 

七、NIO職責

 

首先,向Selector註冊Channel的可讀、可寫狀態

當客戶端向服務端發送消息,網卡收到消息後,Channel處於可讀狀態,Selector收到通知,Channel收到消息,將數據讀取到Buffer當中

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