java io 模型重點講述

java io 模型重點講述

bio(阻塞)

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

aio

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

nio (異步非阻塞)

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

相關文章
相關標籤/搜索