Unsafe是托委訪問socket,那么Channel是直接提供給開發(fā)者使用的
Channel 主要有兩個實現(xiàn) NioServerSocketChannel同NioSocketChannel 致于其它不常用不在研究范圍內(nèi)
NioServerSocketChannel 是給server用的,程序由始至終只有一個NioServerSocketChannel
NioSocketChannel 是給客戶端用的,每個連接生成一個NioSocketChannel 對象
NioSocketChannel同NioSocketChannel的繼承關(guān)系
NioSocketChannel -> AbstractNioByteChannel -> AbstractNioChannel -> AbstractChannel
NioServerSocketChannel -> AbstractNioMessageChannel-> AbstractNioChannel -> AbstractChannel
小提示:如果看文字不夠直觀可以在eclipse里按快捷鍵 選擇類 ctrl+t
channel有unsafe相應(yīng)的實現(xiàn)類,反之亦是。其實功能是很簡單的,劃分太多對象目的是對某部分功能重用,有時也可能因過渡設(shè)計造成
對于channel我們主要分析 I/O read/write操作
NioServerSocketChannel AbstractNioMessageChannel SelectorProvider DEFAULT_SELECTOR_PROVIDER = (= NioServerSocketChannelConfig( doReadMessages(List<Object> bu