[發(fā)明專利]一種面向多終端無線通信的Socket線程池設(shè)計(jì)方法在審
| 申請(qǐng)?zhí)枺?/td> | 201710076545.4 | 申請(qǐng)日: | 2017-02-13 |
| 公開(公告)號(hào): | CN106997307A | 公開(公告)日: | 2017-08-01 |
| 發(fā)明(設(shè)計(jì))人: | 嚴(yán)軍;倪清榮;周夏杰 | 申請(qǐng)(專利權(quán))人: | 上海大學(xué);上海格州電子股份有限公司 |
| 主分類號(hào): | G06F9/48 | 分類號(hào): | G06F9/48;G06F9/50;H04L29/06;H04L29/08;H04L1/22 |
| 代理公司: | 上海上大專利事務(wù)所(普通合伙)31205 | 代理人: | 陸聰明 |
| 地址: | 200444*** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 面向 終端 無線通信 socket 線程 設(shè)計(jì) 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于線程池設(shè)計(jì)領(lǐng)域,具體涉及一種面向多終端無線通信的Socket線程池設(shè)計(jì)方法。
背景技術(shù)
Windows Socket網(wǎng)絡(luò)通信技術(shù)目前已經(jīng)得到相當(dāng)普遍的應(yīng)用。不論系統(tǒng)是基于客戶端/服務(wù)器的C/S模式還是基于瀏覽器/服務(wù)器的B/S模式,系統(tǒng)中的服務(wù)器如果不能同時(shí)為多個(gè)客戶端提供服務(wù),那它就幾乎沒有使用價(jià)值。
傳統(tǒng)的處理方式是為每個(gè)客戶端連接創(chuàng)建一個(gè)新線程,在新線程上請(qǐng)求服務(wù)。在服務(wù)器端與手持終端的通信過程中,線程會(huì)被頻繁地建立與關(guān)閉,這將大大增加系統(tǒng)能耗。而線程池是一種多線程的處理方式,處理過程為:將任務(wù)添加到隊(duì)列,然后在創(chuàng)建線程后自動(dòng)啟動(dòng)這些任務(wù)。這樣線程能在多個(gè)請(qǐng)求中復(fù)用,減少系統(tǒng)運(yùn)行時(shí)間,提高系統(tǒng)效率。線程池技術(shù)與臨時(shí)為新連接請(qǐng)求創(chuàng)建新線程相比,將線程創(chuàng)建的時(shí)間轉(zhuǎn)移到了響應(yīng)時(shí)間外,用戶體驗(yàn)更好。
目前主流的線程池包括Fixed Thread Pool(定長線程池)、Cached Thread Pool(可緩存線程池)、Single Thread Executor(單線程化線程池)、Scheduled Thread Pool(周期執(zhí)行線程池)。Fixed Thread Pool與Cached Thread Pool定義了多個(gè)定長或不定長線程池,其主要面向多線程并發(fā)的情況,對(duì)于同一線程下多任務(wù)亂序執(zhí)行引起的線程死鎖并沒有相應(yīng)的控制機(jī)制。Single Thread Pool是一個(gè)只有單一工作線程的線程池,它可以在線程出現(xiàn)異常時(shí),建立新的工作線程處理任務(wù),保證程序順利的執(zhí)行,但其并沒有引入消息重發(fā)機(jī)制,保證連續(xù)客戶端通信的穩(wěn)定性和可靠性。Scheduled Thread Pool是一種定長的線程池,它支持定時(shí)或循環(huán)的任務(wù)執(zhí)行,但是其并沒有引入針對(duì)客戶端通信的線程異常處理機(jī)制,保證在客戶端通信出現(xiàn)異常時(shí),線程池始終保持穩(wěn)定,不出現(xiàn)線程池崩潰的情況。
多終端無線通信是指服務(wù)器端同時(shí)處理多個(gè)手持終端的連接請(qǐng)求與命令發(fā)送請(qǐng)求。為保證服務(wù)器端能同時(shí)處理多手持終端的不同請(qǐng)求,服務(wù)器端需要具有良好的并發(fā)性能。首先,服務(wù)器端開啟監(jiān)聽,等待客戶端的連接。服務(wù)器每當(dāng)建立一個(gè)新的Socket連接,主線程就啟動(dòng)一個(gè)新的線程,負(fù)責(zé)服務(wù)器端與客戶端的通信;而主線程繼續(xù)等待下一個(gè)客戶端的連接。當(dāng)客戶端斷開連接后,子線程釋放其占用的所有的Socket資源。由于服務(wù)器端與手持終端之間的通信過程需要被連續(xù)執(zhí)行多次,加上網(wǎng)絡(luò)問題可能會(huì)導(dǎo)致線程持續(xù)處于資源等待或信息接收狀態(tài),引起線程死鎖,進(jìn)而導(dǎo)致通信被阻塞。所以,這就需要設(shè)計(jì)一種面向多終端無線通信的Socket線程池。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對(duì)已有多線程通信存在的缺陷,提供一種面向多終端無線通信的Socket線程池設(shè)計(jì)方法。
為了實(shí)現(xiàn)上述目標(biāo),本發(fā)明的構(gòu)思是:針對(duì)多終端無線通信的高通信效率需求以及線程池風(fēng)險(xiǎn)系數(shù)高的特性,該線程池設(shè)計(jì)引入相應(yīng)的線程異常處理機(jī)制。
根據(jù)上述構(gòu)思,本發(fā)明采用的技術(shù)方案為:
一種面向多終端無線通信的Socket線程池設(shè)計(jì)方法,包含多終端無線通信過程、線程池框架設(shè)計(jì)、針對(duì)多終端無線通信的線程異常處理機(jī)制三部分,具體步驟為:
a. 多終端無線通信過程的實(shí)現(xiàn)步驟如下:
(a-1)服務(wù)器端的主線程監(jiān)聽特定端口;
(a-2)客戶端發(fā)起連接請(qǐng)求,與服務(wù)器建立Socket連接;
(a-3)服務(wù)器端開辟一個(gè)獨(dú)立的線程,進(jìn)行每對(duì)連接的數(shù)據(jù)讀寫和數(shù)據(jù)處理操作,將服務(wù)器上的這個(gè)獨(dú)立線程叫做任務(wù)線程;
(a-4)主線程一旦啟動(dòng)了任務(wù)線程,就立即去處理下一個(gè)客戶端的連接,盡量讓每個(gè)客戶端在最短的時(shí)間內(nèi)得到響應(yīng);
(a-5)每個(gè)任務(wù)線程啟動(dòng)后,均獨(dú)立于對(duì)應(yīng)的客戶端通信,并按照協(xié)議要求處理請(qǐng)求,回復(fù)結(jié)果,完成任務(wù)后關(guān)閉連接,結(jié)束線程;
(a-6)服務(wù)器端持續(xù)處于監(jiān)聽狀態(tài);
b.線程池框架設(shè)計(jì):
(b-1)根據(jù)服務(wù)器端的CPU數(shù)以及工作所需的線程數(shù)配置線程池的容量;
(b-2)線程池中主要分為主線程、管理線程、任務(wù)線程和輔線程;
(b-3)主線程負(fù)責(zé)初始化線程池對(duì)象,反復(fù)偵聽服務(wù)器端口,對(duì)每個(gè)客戶端的連接都創(chuàng)建任務(wù)線程,并將它們添加到線程池的任務(wù)隊(duì)列中,并通知喚醒線程池管理線程;
(b-4)管理線程負(fù)責(zé)線程池中線程的管理,在構(gòu)建線程池對(duì)象時(shí),一次性創(chuàng)建并啟動(dòng),掃描任務(wù)隊(duì)列,如果有任務(wù),就取走一個(gè),啟動(dòng)該任務(wù)線程,并讓線程池的工作任務(wù)數(shù)加1,如果沒有任務(wù),則阻塞;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海大學(xué);上海格州電子股份有限公司,未經(jīng)上海大學(xué);上海格州電子股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710076545.4/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種田徑用安全氣墊
- 下一篇:一種健美操力量訓(xùn)練器械
- 一種Socket數(shù)據(jù)傳輸處理方法及裝置
- 一種套接字資源分配方法及設(shè)備
- 一種通用IP協(xié)議棧事件通知系統(tǒng)及方法
- 限制JAVA程序socket數(shù)量的定制虛擬機(jī)方法
- 電源管理系統(tǒng)、信息處理方法、連接器和Socket
- 基于socket框架的數(shù)據(jù)訪問系統(tǒng)及方法
- 一種基于PC客戶端的socket通信方法
- 信息封裝方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 消息訂閱系統(tǒng)及方法
- 一種Linux虛擬機(jī)Socket監(jiān)聽的檢測(cè)方法及其系統(tǒng)





