nio與mina學習(1) nio與socket模型的關係探究

最近項目當中使用了mina框架做socket後端服務框架,雖然也寫差不多了,但對nio還是存在一個很抽象的概念。接下來打算做一個nio與mina的研究。


對於需要訪問操作系統底層資源的一些操作,如Thread裏的yield等等的操作,在jdk的底層是c或者c++來實現的,那同樣對於網絡操作來說,對不同的平臺,比如windows和linux來說,windows裏的五種socket操作模型,linux的socket模型,nio很顯然會分別支持iocp和epoll這兩中模型,到jdk的源碼目錄結構中去看看,我們也能很清楚其確實是這樣的,當然我看的是jdk7,看網上的資料,jdk4剛出的時候,windows下支持的貌似不是iocp,而是overlapped。


在jdk的目錄結構中的目錄jdk\src\windows\native\sun\nio\ch下存在這樣一些文件


從這個過程當中我們也就不難看出了windows所使用的socket模型了。

接下來就是linux所使用的socket模型了,我們也可以通過它的目錄結構來觀察一下其結構

在jdk的源碼目錄結構jdk\src\solaris\native\sun\nio\ch下(solaris是sun公司的unix系統),我們可以發現


當然了感興趣的話也可以進入iocp或epoll的實現中去一窺究竟

發佈了24 篇原創文章 · 獲贊 9 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章