java io 模型重點講述

java io 模型重點講述

bio(阻塞)

同步IO 接受請求與處理請求用同一條線程

aio

應用程序線程會向系統註冊一個socket請求,以及一個回調方法,繼續執行下去。socket接受區的數據監控交給系統,當數據到達接收區,系統就將接收區的數據讀到應用程序的緩衝區中,再回調用註冊的方法去讀取數據。

nio (異步非阻塞)

與aio類似,不同之此在於,aio回調完成事件時,數據已經複製到應該用程序中了(jvm),而noi還需要通過API去系統的接收區中讀。接收緩衝區的選用很重要。
緩衝區類型主要有三種:jvm,jvm外,文件映射(mappedbytebuffer)。noi主要選擇還是jvm外的緩衝區。
一個好緩衝區的影響性能的因素有:同時讀寫,動態擴容大小。
它決定了異步通訊的穩定性和高效率性。nio的一個實現框架是netty,他設計了一套接口bytesbuf,compositebytebuf實現類,可以按需求去實現自己的bytesbuf實現類。

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