Java入門(mén)學(xué)習(xí),socket編程書(shū)籍,前幾周末看了一本關(guān)于Netty編程相關(guān)的書(shū)籍??吹阶髡邔?duì)IOSocket編程在服務(wù)器端用了線程池去優(yōu)化socket編程單線程的編碼,趁這個(gè)周末進(jìn)行簡(jiǎn)單記錄一下。
編碼實(shí)現(xiàn)
TimeServerHandler類
該類比較簡(jiǎn)單,實(shí)現(xiàn)Runnable
TimeServerHandlerPool類
類構(gòu)建一個(gè)線程隊(duì)列,Socket服務(wù)器端把監(jiān)聽(tīng)到的線程都以任務(wù)task的方式加入到該線程池隊(duì)列中
TimeServerPool類
啟動(dòng)服務(wù)器端的入口。首先初始化任務(wù)隊(duì)列的池TimeServerHandlerPoolserverHandlerPool=newTimeServerHandlerPool(50,1000);
每當(dāng)客戶端來(lái)一個(gè)請(qǐng)求,就作為一個(gè)task任務(wù)加入隊(duì)列,線程池來(lái)處理serverHandlerPool.execute(newTimeServerHandler(socket));完整代碼
結(jié)束語(yǔ)
Socket編程服務(wù)端用線程池來(lái)處理,優(yōu)化了單線程的缺點(diǎn)和性能,也算是解決socket編程的一種方式。但是,我更加喜歡的是使用javanio,或者直接使用netty進(jìn)行socket開(kāi)發(fā)。在公司的開(kāi)發(fā)中,也是直接用的netty開(kāi)發(fā)
以上就是長(zhǎng)沙達(dá)內(nèi)教育java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java入門(mén)學(xué)習(xí),socket編程書(shū)籍”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。