netty--NIO--AIO--BIO(0)

java IO模型

BIO: JDK1.4以前用的都是BIO 堵塞IO 堵塞到我們的讀寫方法,堵塞到線程來提供性能,對於線程的開銷本來就是浪費

 

NIO:JDK1.4 linux 多路複用技術(select 模式) 實現IO事件的輪詢

方式:同步非堵塞的模式,這種方式是目前主流的網絡通信模式

內核: 操作系統是管理我們整個硬件,內核管理我們的內存,操作我們的cpu

應用程序如何調用內核,通過系統調用來調用內核操作

AIO:JDK1.7(NIO2) 纔是實現實現真正的aio;

javaNIO

Channel :  面向buffer的一個通道,雙向的

Unsafe:

buffer:

Selector:

 

緩衝區 : 在談到緩衝區時,我們說緩衝區本質上就是一個數組,但他其實是一個特殊的數組,緩衝區對象內置了一些機制,能夠跟蹤和 記錄緩衝區內的狀態變化情況,如果我們用get()方法從緩衝區獲取數據,或者使用put()方法把數據寫入緩衝區,都會引起緩衝區狀態的變化,在緩衝區中,最重要的屬性有下面三個,他們一起合作完成對緩衝區內部狀態的變化跟蹤,

通過這幾個變量來操作緩衝區

position : 相當於下標

capacity: 容量

limit :可以理解成鎖定 (注: flip()方法執行後鎖定)

直接緩衝區 mappedBuffer 零拷貝,直接操作內存

flip()固定緩衝區狀態,將position的值設置成limit然後position設置爲0

clear()將緩衝區重置,將limit設置成capacity,position設置爲0

通道 channel:

 

Reactor反應堆:是底層的一種概念

BIO:

 

NIO: 

SELECTOR: 是一種實現

 

 

 

AIO:異步非堵塞IO

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