[發(fā)明專利]高可用集群系統(tǒng)中的線程池任務(wù)處理方法在審
| 申請?zhí)枺?/td> | 201711018504.6 | 申請日: | 2017-10-27 |
| 公開(公告)號: | CN107832146A | 公開(公告)日: | 2018-03-23 |
| 發(fā)明(設(shè)計)人: | 李世巍 | 申請(專利權(quán))人: | 北京計算機技術(shù)及應(yīng)用研究所 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/48 |
| 代理公司: | 中國兵器工業(yè)集團公司專利中心11011 | 代理人: | 張然 |
| 地址: | 100854*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 可用 集群 系統(tǒng) 中的 線程 任務(wù) 處理 方法 | ||
1.一種高可用集群系統(tǒng)中的線程池任務(wù)處理方法,其特征在于,包括:
線程池主線程隨系統(tǒng)運行后,首先預(yù)創(chuàng)建一定數(shù)目的空閑的工作線程,空閑的工作線程初始時均處于條件阻塞狀態(tài);
接收用戶輸入的工作任務(wù),形成工作任務(wù)隊列;
線程池主線程依次進入查找工作任務(wù)、檢查線程池狀態(tài)以及為工作任務(wù)分配工作線程的循環(huán),包括:
循環(huán)開始,從工作任務(wù)隊列中頭部取得待處理的工作任務(wù),成功則進入下一步,是否,則保持取工作任務(wù)的狀態(tài);
如果當(dāng)前線程池忙碌線程超過總數(shù)的一定占比,則這時不處理當(dāng)前工作任務(wù),并向系統(tǒng)告警并報告當(dāng)前處理狀態(tài);
檢查線程池狀態(tài),當(dāng)前空閑線程數(shù)小于空閑的最低值時,創(chuàng)建一定數(shù)目的空閑線程,以維持線程池的平衡狀態(tài);當(dāng)空閑線程數(shù)大于空閑的最高值時,則釋放一定數(shù)目的空閑線程;
為待執(zhí)行的工作任務(wù)分配一個工作線程,并給工作線程條件信號激活工作線程開始執(zhí)行工作任務(wù);工作任務(wù)隊列頭部指針到下移,繼續(xù)循環(huán)處理;
工作任務(wù)隊列中無任務(wù)后,主線程的循環(huán)停止,釋放掉申請的系統(tǒng)資源。
2.如權(quán)利要求1所述的高可用集群系統(tǒng)中的線程池任務(wù)處理方法,其特征在于,該一定占比為80%。
3.如權(quán)利要求1所述的高可用集群系統(tǒng)中的線程池任務(wù)處理方法,其特征在于,創(chuàng)建的空閑工作線程數(shù)目取決于程序的規(guī)模以及對需要處理的任務(wù)復(fù)雜程度的預(yù)估。
4.如權(quán)利要求1所述的高可用集群系統(tǒng)中的線程池任務(wù)處理方法,其特征在于,工作任務(wù)隊列為用戶的輸入,根據(jù)用戶提出的計算任務(wù),將大的計算任務(wù)分解成可快速執(zhí)行的細(xì)小任務(wù),然后每個小任務(wù)封裝成一個結(jié)構(gòu)體,以先進先出的方式存入工作任務(wù)隊列,工作隊列的頭部是當(dāng)前工作隊列中最前面的沒有被分配出去的任務(wù)結(jié)構(gòu)體指針,當(dāng)獲得該指針的時候一般會有兩種情況,成功或者失敗,如果成功則返回待執(zhí)行的工作任務(wù)的指針,反之則失敗,等待新的正確的工作任務(wù)指針。
5.如權(quán)利要求4所述的高可用集群系統(tǒng)中的線程池任務(wù)處理方法,其特征在于,在取得正確的工作任務(wù)結(jié)構(gòu)體指針之后,會檢查當(dāng)前線程池所有工作線程的工作狀態(tài),如果當(dāng)前線程池忙碌線程超過總數(shù)的80%或者低于總數(shù)的20%,則線程池工作狀態(tài)異常,則這時暫停處理當(dāng)前取到的工作任務(wù),并向系統(tǒng)報告當(dāng)前線程池狀態(tài)。
6.如權(quán)利要求1所述的高可用集群系統(tǒng)中的線程池任務(wù)處理方法,其特征在于,當(dāng)前線程池忙碌線程超過總數(shù)的一定占比,則線程池創(chuàng)建一定數(shù)目的空閑線程,當(dāng)空閑線程數(shù)大于空閑的最高值時,則釋放一定數(shù)目的空閑線程。
7.如權(quán)利要求1所述的高可用集群系統(tǒng)中的線程池任務(wù)處理方法,其特征在于,為待執(zhí)行的工作任務(wù)分配一個工作線程,并給工作線程條件信號激活工作線程開始執(zhí)行工作任務(wù)包括:
為取到的工作任務(wù)分配一個工作線程,并給工作線程條件信號激活工作線程開始執(zhí)行工作任務(wù),工作線程的條件信號即是將工作線程的狀態(tài)標(biāo)志置為忙碌,同時將工作任務(wù)指針傳遞進來,讓工作線程開始執(zhí)行任務(wù),不再處于條件阻塞狀態(tài)而是處于忙碌狀態(tài)。
8.如權(quán)利要求1所述的高可用集群系統(tǒng)中的線程池任務(wù)處理方法,其特征在于,將取出的工作任務(wù)在工作任務(wù)隊列中刪除,如工作任務(wù)隊列不為空,轉(zhuǎn)到循環(huán)開始,判斷全部工作任務(wù)是否都處理處理完成,當(dāng)全部工作任務(wù)都處理完成之后,結(jié)束,否則,繼續(xù)等待,如果輸入新的任務(wù),則將新的任務(wù)加入工作任務(wù)隊列的隊尾,并轉(zhuǎn)到循環(huán)開始。
9.如權(quán)利要求8所述的高可用集群系統(tǒng)中的線程池任務(wù)處理方法,其特征在于,轉(zhuǎn)到循環(huán)開始前,工作任務(wù)隊列頭部指針下移到工作任務(wù)隊列中下一個工作任務(wù)上,這里任務(wù)隊列頭部指針是在每次完成工作任務(wù)分配的時候進行,同時還有一個工作任務(wù)隊列尾部指針,在每次有新的工作任務(wù)進入工作任務(wù)隊列時移動至新的工作任務(wù)后面,當(dāng)頭部指針等于尾部指針時,暫停讀取工作任務(wù),并以一定時間間隔來持續(xù)判斷工作任務(wù)隊列中是否有新的任務(wù)到來;反之,頭部指針不等于尾部指針時,繼續(xù)循環(huán)處理。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京計算機技術(shù)及應(yīng)用研究所,未經(jīng)北京計算機技術(shù)及應(yīng)用研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711018504.6/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種集群調(diào)度呼叫業(yè)務(wù)中主叫終端信息顯示方法
- 更新網(wǎng)絡(luò)流量管理設(shè)備同時維持有效性
- 與集群調(diào)度系統(tǒng)進行通信的方法、群集接入網(wǎng)關(guān)及系統(tǒng)
- 一種管理集群通信系統(tǒng)資源的方法
- 基于Kubernetes和OpenStack容器云平臺多集群構(gòu)建方法、介質(zhì)、設(shè)備
- 一種容災(zāi)系統(tǒng)、容災(zāi)處理方法、監(jiān)控節(jié)點和備份集群
- 一種ETCD集群恢復(fù)方法、系統(tǒng)、設(shè)備及計算機介質(zhì)
- 混合云場景下保證可用集群數(shù)量的方法、裝置及系統(tǒng)
- 一種集群拓?fù)涓路椒?、系統(tǒng)、設(shè)備及計算機存儲介質(zhì)
- 集群切換方法、集群切換裝置、電子設(shè)備及可讀存儲介質(zhì)





