- Netty權(quán)威指南
- 李林鋒
- 267字
- 2024-01-05 16:20:04
2.2.1 偽異步I/O模型圖
采用線程池和任務(wù)隊(duì)列可以實(shí)現(xiàn)一種叫做偽異步的I/O通信框架,它的模型圖如圖2-5所示。
當(dāng)有新的客戶端接入的時(shí)候,將客戶端的Socket封裝成一個(gè)Task(該任務(wù)實(shí)現(xiàn)java.lang.Runnable接口)投遞到后端的線程池中進(jìn)行處理,JDK的線程池維護(hù)一個(gè)消息隊(duì)列和N個(gè)活躍線程對(duì)消息隊(duì)列中的任務(wù)進(jìn)行處理。由于線程池可以設(shè)置消息隊(duì)列的大小和最大線程數(shù),因此,它的資源占用是可控的,無(wú)論多少個(gè)客戶端并發(fā)訪問(wèn),都不會(huì)導(dǎo)致資源的耗盡和宕機(jī)。

圖2-5 偽異步I/O服務(wù)端通信模型(M:N)
下面的小節(jié),我們依然采用時(shí)間服務(wù)器程序,將其改造成偽異步I/O時(shí)間服務(wù)器,然后通過(guò)對(duì)代碼進(jìn)行分析,找出其弊端。
推薦閱讀
- Vue.js 3.x+Element Plus前端開(kāi)發(fā)實(shí)戰(zhàn)
- Docker源碼分析
- 網(wǎng)絡(luò)空間測(cè)繪技術(shù)與實(shí)踐:讓互聯(lián)網(wǎng)情報(bào)服務(wù)于網(wǎng)絡(luò)安全
- DevOps:企業(yè)級(jí)CI/CD實(shí)戰(zhàn)
- 軟件測(cè)試面試突擊:為自己贏得一份測(cè)試工程師職位
- Spring Cloud微服務(wù)架構(gòu)實(shí)戰(zhàn)
- Swift從入門(mén)到精通(正式版)
- 卡爾曼濾波原理及應(yīng)用:MATLAB仿真(第2版)
- 統(tǒng)信UOS應(yīng)用開(kāi)發(fā)詳解
- 大話軟件工程:需求分析與軟件設(shè)計(jì)
- Bootstrap實(shí)戰(zhàn)
- 劍指大前端全棧工程師(全2冊(cè))
- 自然語(yǔ)言理解與行業(yè)知識(shí)圖譜:概念、方法與工程落地
- 深入淺出系統(tǒng)虛擬化:原理與實(shí)踐
- Serverless核心技術(shù)和大規(guī)模實(shí)踐