[發明專利]一種線程調度方法、裝置、設備及存儲介質在審
| 申請號: | 202010171658.4 | 申請日: | 2020-03-12 |
| 公開(公告)號: | CN111367675A | 公開(公告)日: | 2020-07-03 |
| 發明(設計)人: | 董世江 | 申請(專利權)人: | 蘇州浪潮智能科技有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 薛嬌 |
| 地址: | 215100 江蘇省蘇州市吳*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 線程 調度 方法 裝置 設備 存儲 介質 | ||
本發明公開了一種線程調度方法、裝置、設備及存儲介質,該方法包括:獲取目的任務,所述目的任務為當前接收的任一待處理任務;判斷預先設置的包含多個工作線程的線程池中,是否存在與所述目的任務對應的工作線程,如果是,則確定該與所述目的任務對應的工作線程為目的線程,如果否,則選取所述線程池中空閑的工作線程為目的線程;確定與所述目的線程對應的任務隊列為目的隊列,并將所述目的任務分發到所述目的隊列中,以供所述目的線程獲取及處理;其中,所述線程池中包含的工作線程與任務隊列一一對應。從而不會因為同步互斥導致一個線程卡死、其他線程只能等待的情況發生,有效提高了任務執行效率。
技術領域
本發明涉及線程池技術領域,更具體地說,涉及一種線程調度方法、裝置、設備及存儲介質。
背景技術
隨著網絡技術的發展,為處理大量短小并發任務,線程池技術已經越來越多地被應用到服務器中,并在一定程度上緩解了系統的壓力。但伴隨著數據量和并發訪問量的增加,并發控制與性能已成為需要考慮的一個緊迫問題。
傳統的線程池用到了任務隊列和工作隊列,利用阻塞原理協調請求和處理之間的速度,在一定程度上緩解了服務器端的壓力,提升了系統的性能。但是現有的方案中,線程池中的線程在實現任務處理時,需要互相等待制約,因為這種制約可能會導致一個線程卡死、其他線程只能等待等情況的發生,進而降低任務執行效率。
發明內容
本發明的目的是提供一種線程調度方法、裝置、設備及存儲介質,能夠有效提高任務執行效率。
為了實現上述目的,本發明提供如下技術方案:
一種線程調度方法,包括:
獲取目的任務,所述目的任務為當前接收的任一待處理任務;
判斷預先設置的包含多個工作線程的線程池中,是否存在與所述目的任務對應的工作線程,如果是,則確定該與所述目的任務對應的工作線程為目的線程,如果否,則選取所述線程池中空閑的工作線程為目的線程;
確定與所述目的線程對應的任務隊列為目的隊列,并將所述目的任務分發到所述目的隊列中,以供所述目的線程獲取及處理;其中,所述線程池中包含的工作線程與任務隊列一一對應。
優選的,判斷出所述線程池中不存在與所述目的任務對應的工作線程之后,還包括:
如果所述線程池中不存在空閑的工作線程,則確定對應任務隊列中包含的待處理任務的數量最少的工作線程為目的線程,執行確定與所述目的線程對應的任務隊列為目的隊列的步驟。
優選的,確定對應任務隊列中包含的待處理任務的數量最少的工作線程為目的線程之前,還包括:
判斷所述線程池中各工作線程對應任務隊列中包含的待處理任務的數量是否均達到數量閾值,如果是,則檢測CPU使用率,在所述CPU使用率低于最低閾值時,在所述線程池中創建新的工作線程為目的線程,執行確定與所述目的線程對應的任務隊列為目的隊列的步驟,如果否,則執行確定對應任務隊列中包含的待處理任務的數量最少的工作線程為目的線程的步驟。
優選的,還包括:
定時或者實時檢測CPU使用率,如果所述CPU使用率高于最高閾值,則減少所述線程池中包含的工作線程的數量。
優選的,還包括:
接收所述線程池中各工作線程發送的心跳信號,并在連續預設次接收任一工作線程的心跳信號超時時,確定該任一工作線程處于卡死狀態。
優選的,確定任一工作線程處于卡死狀態之后,還包括:
在所述線程池中創建新的工作線程,并利用該新的工作線程替換處于卡死狀態的工作線程。
優選的,設置所述線程池,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于蘇州浪潮智能科技有限公司,未經蘇州浪潮智能科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010171658.4/2.html,轉載請聲明來源鉆瓜專利網。





