[發(fā)明專利]一種面向多終端無線通信的Socket線程池設(shè)計方法在審
| 申請?zhí)枺?/td> | 201710076545.4 | 申請日: | 2017-02-13 |
| 公開(公告)號: | CN106997307A | 公開(公告)日: | 2017-08-01 |
| 發(fā)明(設(shè)計)人: | 嚴軍;倪清榮;周夏杰 | 申請(專利權(quán))人: | 上海大學;上海格州電子股份有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/50;H04L29/06;H04L29/08;H04L1/22 |
| 代理公司: | 上海上大專利事務(wù)所(普通合伙)31205 | 代理人: | 陸聰明 |
| 地址: | 200444*** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 面向 終端 無線通信 socket 線程 設(shè)計 方法 | ||
1.一種面向多終端無線通信的Socket線程池設(shè)計方法,包含多終端無線通信過程、線程池框架設(shè)計、針對多終端無線通信的線程異常處理機制三部分,其特征在于,具體步驟為:
a. 多終端無線通信過程的實現(xiàn)步驟如下:
(a-1)服務(wù)器端的主線程監(jiān)聽特定端口;
(a-2)客戶端發(fā)起連接請求,與服務(wù)器建立Socket連接;
(a-3)服務(wù)器端開辟一個獨立的線程,進行每對連接的數(shù)據(jù)讀寫和數(shù)據(jù)處理操作,將服務(wù)器上的這個獨立線程叫做任務(wù)線程;
(a-4)主線程一旦啟動了任務(wù)線程,就立即去處理下一個客戶端的連接,盡量讓每個客戶端在最短的時間內(nèi)得到響應(yīng);
(a-5)每個任務(wù)線程啟動后,均獨立于對應(yīng)的客戶端通信,并按照協(xié)議要求處理請求,回復(fù)結(jié)果,完成任務(wù)后關(guān)閉連接,結(jié)束線程;
(a-6)服務(wù)器端持續(xù)處于監(jiān)聽狀態(tài);
b.線程池框架設(shè)計:
(b-1)根據(jù)服務(wù)器端的CPU數(shù)以及工作所需的線程數(shù)配置線程池的容量;
(b-2)線程池中主要分為主線程、管理線程、任務(wù)線程和輔線程;
(b-3)主線程負責初始化線程池對象,反復(fù)偵聽服務(wù)器端口,對每個客戶端的連接都創(chuàng)建任務(wù)線程,并將它們添加到線程池的任務(wù)隊列中,并通知喚醒線程池管理線程;
(b-4)管理線程負責線程池中線程的管理,在構(gòu)建線程池對象時,一次性創(chuàng)建并啟動,掃描任務(wù)隊列,如果有任務(wù),就取走一個,啟動該任務(wù)線程,并讓線程池的工作任務(wù)數(shù)加1,如果沒有任務(wù),則阻塞;
(b-5)任務(wù)線程獨立完成一次連接任務(wù)的線程,由主線程創(chuàng)建并被加入到任務(wù)隊列中,被管理線程取出并啟動,自己完成通信、處理、存儲等任務(wù)后,讓線程池的工作任務(wù)數(shù)減1,然后結(jié)束自己;
(b-6)任務(wù)線程出現(xiàn)異常時,向輔線程進行異常反饋,輔線程根據(jù)反饋的內(nèi)容,提出相應(yīng)的異常處理方案;
(b-7)每個任務(wù)一開始并不啟動,等待管理線程來啟動;線程池對象結(jié)束時,即它的線程組對象被注銷時,所有的管理線程被全部銷毀;
c.針對多終端無線通信的線程異常處理機制:
(c-1)準備任務(wù)所需對象異常處理機制的實現(xiàn)步驟:
(c-1-1)任務(wù)線程中的新任務(wù)開始運行前,輔線程獲取當前任務(wù)所需對象的狀態(tài);
(c-1-2)如果該任務(wù)所需對象沒有準備齊全,輔線程會命令任務(wù)線程中的任務(wù),在限定時間內(nèi)等待任務(wù)所需對象空閑;
(c-1-3)如果在限定時間內(nèi),任務(wù)所需對象準備齊全,則開始任務(wù);
(c-1-4)如果在限定時間內(nèi),任務(wù)所需對象沒有準備齊全,則判定線程池死鎖,拋棄該線程請求,接收下一個終端的請求;
(c-2)數(shù)據(jù)重傳機制的實現(xiàn)步驟:
(c-2-1)當服務(wù)器端與手持終端建立Socket連接后,超過限定時間,仍沒有獲取到手持終端的數(shù)據(jù),則釋放與該手持終端建立的Socket連接資源;
(c-2-2)服務(wù)器端保持監(jiān)聽狀態(tài),等待接收從手持終端發(fā)來的連接請求;
(c-2-3)若限定時間內(nèi)仍沒有收到手持終端發(fā)來的數(shù)據(jù),釋放與該手持終端建立的Socket連接資源,重新保持監(jiān)聽狀態(tài);
(c-2-4)若限定時間內(nèi)完成數(shù)據(jù)的接收,則對數(shù)據(jù)解析并進行相應(yīng)的處理;
(c-3)其他異常情況處理步驟:
(c-3-1)除接收手持終端數(shù)據(jù)之外的任務(wù)占用任務(wù)線程超過限定時間后仍未完成,判定該任務(wù)執(zhí)行異常,拋棄本次任務(wù)請求;
(c-3-2)任務(wù)線程在任務(wù)執(zhí)行時或任務(wù)執(zhí)行后出現(xiàn)異常,該任務(wù)線程會被自動拋棄,線程池會為待處理任務(wù)自動開辟新的任務(wù)線程;
(c-3-3)任務(wù)線程中的每個任務(wù)執(zhí)行完成后,輔線程會核準線程池的線程數(shù)是否與開始的設(shè)置相同,當發(fā)生線程泄露或線程運行異常情況時,輔線程會在線程池中添加新的任務(wù)線程作為補充;
(c-3-4)任務(wù)線程長時間無任務(wù)占用時,輔線程關(guān)閉該任務(wù)線程,等待有新任務(wù)需求時再重新創(chuàng)建。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海大學;上海格州電子股份有限公司,未經(jīng)上海大學;上海格州電子股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710076545.4/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種田徑用安全氣墊
- 下一篇:一種健美操力量訓練器械





