BIO、NIO、AIO、同步、異步、阻塞、非阻塞和多路複用模型

BIO、NIO、AIO

BIO通信:傳統阻塞型,一個線程負責連接,根據請求數創建相同數量的線程來響應、一請求一應答、缺乏彈性伸縮能力,容易宕機
僞異步IO通信:線程池負責連接、M請求N應答、線程數可控因而不會宕機(線程池阻塞)
NIO通信:(同步非阻塞,改進了BIO)緩衝區Buffer、通道Channel、多路複用器Selector
AIO通信:(異步非阻塞,改進了NIO)連接註冊讀寫事件和回調函數、讀寫方法異步,主動通知程序

同步與異步

同步: 同步就是發起一個調用後,被調用者未處理完請求之前,調用不返回。
異步: 異步就是發起一個調用後,立刻得到被調用者的迴應表示已接收到請求,但是被調用者並沒有返回結果,此時我們可以處理其他的請求,被調用者通常依靠事件,回調等機制來通知調用者其返回結果。

同步和異步的區別最大在於異步的話調用者不需要等待處理結果,被調用者會通過回調等機制來通知調用者其返回結果。

阻塞和非阻塞

阻塞: 阻塞就是發起一個請求,調用者一直等待請求結果返回,也就是當前線程會被掛起,無法從事其他任務,只有當條件就緒才能繼續。
非阻塞: 非阻塞就是發起一個請求,調用者不用一直等着結果返回,可以先去幹其他事情。

多路複用:I/O多路複用,I/O就是指的我們網絡I/O,多路指多個TCP連接(或多個Channel),複用指複用一個或少量線程。串起來理解就是很多個網絡I/O複用一個或少量的線程來處理這些連接。

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