這里主要圍繞著Java NIO展開(kāi),從Java NIO的基本使用,到介紹Linux下NIO API,再到Java Selector
其底層的實(shí)現(xiàn)原理。
Java NIO基本使用
Linux下的NIO系統(tǒng)調(diào)用介紹
Selector原理
Channel和Buffer之間的堆外內(nèi)存
Java NIO基本使用
從JDK NIO文檔里面可以發(fā)現(xiàn),Java將其劃分成了三大塊:Channel
,Buffer
以及多路復(fù)用Selector
。Channel的存在,封裝了對(duì)什么實(shí)體的連接通道(如網(wǎng)絡(luò)/文件);Buffer封裝了對(duì)數(shù)據(jù)的緩沖存儲(chǔ),最后對(duì)于Selector則是提供了一種可以以單線程非阻塞的方式,來(lái)處理多個(gè)連接。