[發明專利]一種基于線程調配引擎的線程資源動態調配系統和方法在審
申請號: | 201410367792.6 | 申請日: | 2014-07-29 |
公開(公告)號: | CN104111877A | 公開(公告)日: | 2014-10-22 |
發明(設計)人: | 余敬龍 | 申請(專利權)人: | 廣東能龍教育股份有限公司 |
主分類號: | G06F9/50 | 分類號: | G06F9/50 |
代理公司: | 廣州嘉權專利商標事務所有限公司 44205 | 代理人: | 張海文 |
地址: | 528403 廣東省*** | 國省代碼: | 廣東;44 |
權利要求書: | 查看更多 | 說明書: | 查看更多 |
摘要: | |||
搜索關鍵詞: | 一種 基于 線程 調配 引擎 資源 動態 系統 方法 | ||
技術領域
本發明設計操作系統,尤其是一種基于線程調配引擎的線程資源動態調配方法和系統。
背景技術
傳統多線程方案中采用的服務器模型是一旦接受到請求之后,即創建一個新的線程,由該線程執行任務。任務執行完畢后,線程退出,這就是“即時創建,即時銷毀”的策略。盡管與創建進程相比,創建線程的時間已經大大的縮短,但是如果提交給線程的任務是執行時間較短,而且執行次數極其頻繁,那么服務器將處于不停的創建線程,銷毀線程的狀態。
傳統線程池方案采用預創建的技術,在應用程序啟動之后,將立即創建一定數量的線程(N1),放入空閑隊列中。這些線程都是處于阻塞狀態,不消耗CPU,但占用較小的內存空間。當任務到來后,線程池選擇一個空閑線程,把任務傳入此線程中運行。當N1個線程都在處理任務后,任務會加入等待隊列,等待超時后線程池自動創建一定數量的新線程,用于處理更多的任務。在任務執行完畢后線程也不退出,而是繼續保持在池中等待下一次的任務。當系統比較空閑時,大部分線程都一直處于暫停狀態,線程池自動銷毀一部分線程,回收系統資源。
傳統線程池有以下缺點,任務隊列只有一個隊列,沒有對多個隊列作輪詢,無法設定任務優先級,無法限制任務執行速度等。工作線程數量相對限制,運行過程不能動態變化工作線程數量。
發明內容
為解決上述技術問題,本發明的目的是提供一種基于線程調配引擎的線程資源動態調配方法和系統。
本發明采用的技術方案是:
一種基于線程調配引擎的線程資源動態調配系統和方法,其特征在于:該系統包括主線程、任務列表、線程調配引擎、線程池管理器和線程池,該方法包括以下步驟:
A、主線程傳輸任務請求至任務列表;
B、任務列表根據請求創建多個任務隊列;
C、線程池管理器創建包含多個線程的線程池;
D、線程調配引擎動態調配線程池的線程資源以執行所述任務。
進一步的,所述步驟B中任務列表根據配置文件或者創建者設定任務優先級,并附帶入隊時間,根據任務優先級劃分多個任務隊列。
更進一步的,所述任務列表根據優先級和等待時間的權值確定最終任務隊列的排隊權值,排隊權值高的任務隊列優先供線程調配引擎動態調配。
作為本方案的優化,該系統還包括一監控模塊,該監控模塊用于對任務隊列,線程池情況進行實時監控,以便于任務動態調配,即用戶在界面對任務提高權值,實現緊急任務優先執行。
其中,所述優先級權值為80%,時間權值為20%。
進一步的,所述步驟C中,線程池的工作線程在沒有飽和的情況下,任務可直接委派給空閑的工作線程;而當線程池工作線程飽和的情況下,線程池管理器動態增加的工作線程數目,以適應突發性的請求;一旦任務請求變少線程池管理器將逐步減少線程池中工作線程的數目。
所述線程增加采用一種超前方式,即批量增加一批工作線程,而不是來一個請求才建立創建一個線程。
此外,所述線程池管理器還配置有限制線程池中工作線程數目的上限和下限。
本發明的有益效果:
本發明線程資源動態調配方法和系統對任務進行分類,管控,保證優先級高的優先進行,優先級低的也有一定的資源運行,從而提高線程突發事件的處理,使高峰期可以充分利用服務器資源,空閑期釋放服務器資源。
附圖說明
下面結合附圖對本發明的具體實施方式做進一步的說明。
圖1是本發明的系統架構圖;
圖2是本發明的流程圖;
圖3是本發明線程池工作流程圖。
具體實施方式
如圖1-圖2所示,為本發明的一種基于線程調配引擎的線程資源動態調配系統和方法,該系統包括主線程、任務列表、線程調配引擎、監控模塊、線程池管理器和線程池;
本發明的線程資源動態調配方法包括以下步驟:
A、在應用程序啟動之后,主線程傳輸任務請求至任務列表;
B、任務列表根據請求創建多個任務隊列,隊列中由N個任務組成;具體的,任務列表根據配置文件或者創建者設定任務優先級,并附帶入隊時間,根據任務優先級劃分多個任務隊列;
任務列表根據優先級和等待時間的權值確定最終任務隊列的排隊權值,排隊權值高的任務隊列優先供線程調配引擎動態調配。其中,所述優先級權值為80%,時間權值為20%,當然該權值比例按需設計,亦可為其他比例。
C、線程池管理器創建包含多個線程的線程池;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣東能龍教育股份有限公司,未經廣東能龍教育股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410367792.6/2.html,轉載請聲明來源鉆瓜專利網。