官术网_书友最值得收藏!

2.1.1 BIO通信模型圖

首先,我們通過圖2-1所示的通信模型圖來熟悉下BIO的服務端通信模型:采用BIO通信模型的服務端,通常由一個獨立的Acceptor線程負責監聽客戶端的連接,它接收到客戶端連接請求之后為每個客戶端創建一個新的線程進行鏈路處理,處理完成之后,通過輸出流返回應答給客戶端,線程銷毀。這就是典型的一請求一應答通信模型。

圖2-1 同步阻塞I/O服務端通信模型(一客戶端一線程)

該模型最大的問題就是缺乏彈性伸縮能力,當客戶端并發訪問量增加后,服務端的線程個數和客戶端并發訪問數呈1:1的正比關系,由于線程是Java虛擬機非常寶貴的系統資源,當線程數膨脹之后,系統的性能將急劇下降,隨著并發訪問量的繼續增大,系統會發生線程堆棧溢出、創建新線程失敗等問題,并最終導致進程宕機或者僵死,不能對外提供服務。

下面的兩個小節,我們會分別對服務端和客戶端進行源碼分析,尋找同步阻塞I/O的弊端。

主站蜘蛛池模板: 九龙县| 镇坪县| 镇雄县| 吴桥县| 清流县| 会泽县| 藁城市| 剑阁县| 阜城县| 五家渠市| 钟祥市| 安岳县| 咸丰县| 东乡县| 成安县| 内丘县| 海宁市| 密山市| 呼和浩特市| 简阳市| 新乐市| 安陆市| 临城县| 清新县| 荣昌县| 喀什市| 乐昌市| 尼玛县| 舒兰市| 绿春县| 读书| 女性| 霍林郭勒市| 泾阳县| 萨嘎县| 喜德县| 遵化市| 北川| 中阳县| 崇明县| 镇坪县|