【正文】netty源碼? 死磕3:?

創(chuàng)新互聯(lián)專(zhuān)注于撫順企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城系統(tǒng)網(wǎng)站開(kāi)發(fā)。撫順網(wǎng)站建設(shè)公司,為撫順等地區(qū)提供建站服務(wù)。全流程專(zhuān)業(yè)公司,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
傳說(shuō)中神一樣的Reactor反應(yīng)器模式
1. 為什么是Reactor模式
2. Reactor模式簡(jiǎn)介
3. 多線(xiàn)程IO的致命缺陷
4. 單線(xiàn)程Reactor模型
4.1. 什么是單線(xiàn)程Reactor呢?
4.2. 單線(xiàn)程Reactor的參考代碼
4.3. 單線(xiàn)程模式的缺點(diǎn):
5. 多線(xiàn)程的Reactor
5.1. 基于線(xiàn)程池的改進(jìn)
5.2. 改進(jìn)后的完整示意圖
5.3. 多線(xiàn)程Reactor的參考代碼
6. Reactor持續(xù)改進(jìn)
7. Reactor編程的優(yōu)點(diǎn)和缺點(diǎn)
7.1. 優(yōu)點(diǎn)
7.2. 缺點(diǎn)
寫(xiě)多了代碼的兄弟們都知道,JAVA代碼由于到處面向接口及高度抽象,用到繼承多態(tài)和設(shè)計(jì)模式,程序的組織不是按照正常的理解順序來(lái)的,對(duì)代碼跟蹤很是個(gè)問(wèn)題。所以,在閱讀別人的源碼時(shí),如果不了解代碼的組織方式,往往是暈頭轉(zhuǎn)向,不知在何處。尤其是閱讀經(jīng)典代碼的時(shí)候,更是如此。
反過(guò)來(lái),如果先了解代碼的設(shè)計(jì)模式,再來(lái)去代碼,就會(huì)閱讀的很輕松,不會(huì)那么難懂。
像netty這樣的精品中的極品,肯定也是需要先從設(shè)計(jì)模式入手的。netty的整體架構(gòu),基于了一個(gè)著名的模式——Reactor模式。Reactor模式,是高性能網(wǎng)絡(luò)編程的必知必會(huì)模式。
首先熟悉Reactor模式,一定是磨刀不誤砍柴工。
Netty是典型的Reactor模型結(jié)構(gòu),關(guān)于Reactor的詳盡闡釋?zhuān)疚恼驹诰奕说募绨蛏希柚?Doug Lea(就是那位讓人無(wú)限景仰的大爺)的“Scalable IO in Java”中講述的Reactor模式。
“Scalable IO in Java”的地址是:http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf
Reactor模式也叫反應(yīng)器模式,大多數(shù)IO相關(guān)組件如Netty、redis在使用的IO模式,為什么需要這種模式,它是如何設(shè)計(jì)來(lái)解決高性能并發(fā)的呢?
最最原始的網(wǎng)絡(luò)編程思路就是服務(wù)器用一個(gè)while循環(huán),不斷監(jiān)聽(tīng)端口是否有新的套接字連接,如果有,那么就調(diào)用一個(gè)處理函數(shù)處理,類(lèi)似:
while(true){
socket = accept();
handle(socket)
}
分享名稱(chēng):nettyReactor模式(源碼死磕3)
文章出自:http://chinadenli.net/article30/jijipo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、App開(kāi)發(fā)、品牌網(wǎng)站建設(shè)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)