本發(fā)明涉及計算機,特別涉及一種協(xié)程調(diào)度方法、設備、計算機程序產(chǎn)品及介質(zhì)。
背景技術(shù):
1、協(xié)程也稱為用戶態(tài)線程。協(xié)程的調(diào)度由用戶態(tài)控制。協(xié)程的調(diào)度可以劃分為搶占式調(diào)度與協(xié)作式調(diào)度兩種。在搶占式調(diào)度下,通常預先為協(xié)程設置優(yōu)先級,協(xié)程的優(yōu)先級與協(xié)程負責的任務的優(yōu)先級相關(guān)。協(xié)程負責的任務的優(yōu)先級高,則協(xié)程的優(yōu)先級高。在實際執(zhí)行過程中,如果各協(xié)程均為可執(zhí)行狀態(tài),則優(yōu)先級高的協(xié)程優(yōu)先執(zhí)行。搶占式調(diào)度能夠給予某些任務優(yōu)先執(zhí)行的特權(quán),但是為協(xié)程劃分優(yōu)先級,基于協(xié)程的優(yōu)先級對協(xié)程進行搶占式調(diào)度,并不總是能夠?qū)崿F(xiàn)協(xié)程的合理調(diào)度,不能夠有效響應任務實際的執(zhí)行需求。例如,實際需要及時執(zhí)行的任務,由于負責該任務的協(xié)程的優(yōu)先級低,而導致該任務無法及時執(zhí)行,從而拖延了該任務完成的進度,甚至影響其他任務的執(zhí)行。因此,如何解決上述技術(shù)缺陷已成為本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的是提供一種協(xié)程調(diào)度方法、設備、計算機程序產(chǎn)品及介質(zhì),能夠響應任務實際的緊急執(zhí)行需求,加快任務完成的進度。
2、為解決上述技術(shù)問題,本發(fā)明提供了一種協(xié)程調(diào)度方法,包括:
3、響應于所述協(xié)程由于任務阻塞出讓執(zhí)行權(quán),判斷所述協(xié)程是否滿足緊急調(diào)度條件;所述緊急調(diào)度條件包括:依賴于所述協(xié)程負責執(zhí)行的任務的其他任務非空和/或所述協(xié)程負責執(zhí)行的任務的完成度達到預設閾值;
4、若所述協(xié)程滿足緊急調(diào)度條件,則緊急調(diào)度所述協(xié)程。
5、在一些實施例中,緊急調(diào)度所述協(xié)程包括:
6、根據(jù)所述協(xié)程的緊急調(diào)度次數(shù),確定所述協(xié)程的調(diào)度順序;其中,所述協(xié)程的緊急調(diào)度次數(shù)越多,所述協(xié)程的調(diào)度順序越靠前;
7、根據(jù)所述調(diào)度順序調(diào)度所述協(xié)程。
8、在一些實施例中,根據(jù)所述協(xié)程的緊急調(diào)度次數(shù),確定所述協(xié)程的調(diào)度順序包括:
9、根據(jù)所述協(xié)程的緊急調(diào)度次數(shù),確定所述協(xié)程對應的標識在協(xié)程排隊數(shù)組中的位置,并將所述協(xié)程對應的標識插入所確定的位置處,以根據(jù)所述協(xié)程對應的標識在所述協(xié)程排隊數(shù)組中的位置,調(diào)度所述協(xié)程。
10、在一些實施例中,根據(jù)所述協(xié)程的緊急調(diào)度次數(shù),確定所述協(xié)程對應的標識在協(xié)程排隊數(shù)組中的位置,并將所述協(xié)程對應的標識插入所確定的位置處包括:
11、根據(jù)所述協(xié)程的緊急調(diào)度次數(shù),確定所述協(xié)程的協(xié)程描述結(jié)構(gòu)體的指針在協(xié)程排隊數(shù)組中的位置,并將所述協(xié)程的協(xié)程描述結(jié)構(gòu)體的指針插入所確定的位置處,所述協(xié)程描述結(jié)構(gòu)體用于描述協(xié)程的信息與狀態(tài)。
12、在一些實施例中,根據(jù)所述協(xié)程的緊急調(diào)度次數(shù),確定所述協(xié)程對應的標識在協(xié)程排隊數(shù)組中的位置前還包括:
13、判斷所述協(xié)程緊急調(diào)度次數(shù)加一后是否大于允許范圍內(nèi)的最大值;
14、若不大于,則將所述協(xié)程的緊急調(diào)度次數(shù)加一,并根據(jù)加一后的緊急調(diào)度次數(shù)確定所述協(xié)程對應的標識在協(xié)程排隊數(shù)組中的位置。
15、在一些實施例中,還包括:
16、若所述協(xié)程的緊急調(diào)度次數(shù)加一后大于允許范圍內(nèi)的最大值,則將所述協(xié)程的緊急調(diào)度次數(shù)置為默認值,并將所述協(xié)程鏈入?yún)f(xié)程隊列的隊尾;所述協(xié)程隊列用于管理執(zhí)行任務過程中發(fā)生任務阻塞的協(xié)程與新建的協(xié)程。
17、在一些實施例中,還包括:
18、判斷所述協(xié)程排隊數(shù)組是否為空;
19、若為空,則從協(xié)程隊列中選取元素添加到所述協(xié)程排隊數(shù)組。
20、在一些實施例中,從協(xié)程隊列中選取元素添加到所述協(xié)程排隊數(shù)組包括:
21、從所述協(xié)程隊列的隊頭起選取目標個數(shù)的元素添加到所述協(xié)程排隊數(shù)組;所述目標個數(shù)等于所述協(xié)程排隊數(shù)組的大小。
22、在一些實施例中,還包括:
23、若所述協(xié)程滿足緊急調(diào)度條件,則為所述協(xié)程設置緊急調(diào)度標識。
24、在一些實施例中,還包括:
25、創(chuàng)建新的協(xié)程,并將新建的協(xié)程鏈入?yún)f(xié)程隊列的隊尾。
26、在一些實施例中,還包括:
27、響應于所述協(xié)程由于完成所分配的任務出讓執(zhí)行權(quán),銷毀所述協(xié)程。
28、在一些實施例中,還包括:
29、響應于所述協(xié)程由于任務阻塞出讓執(zhí)行權(quán),判斷所述協(xié)程是否設置有高執(zhí)行優(yōu)先級標識;
30、若所述協(xié)程設置有高執(zhí)行優(yōu)先級標識,則緊急調(diào)度所述協(xié)程。
31、在一些實施例中,還包括:
32、若所述協(xié)程未設置高執(zhí)行優(yōu)先級標識且所述協(xié)程不滿足緊急調(diào)度條件,則將所述協(xié)程鏈入?yún)f(xié)程隊列的隊尾。
33、為解決上述技術(shù)問題,本發(fā)明還提供了一種計算機程序產(chǎn)品,包括計算機程序/指令,所述計算機程序/指令被處理器執(zhí)行時實現(xiàn)如上所述的協(xié)程調(diào)度方法的步驟。
34、為解決上述技術(shù)問題,本發(fā)明還提供了一種協(xié)程調(diào)度設備,包括:
35、存儲器,用于存儲計算機程序;
36、處理器,用于執(zhí)行所述計算機程序時實現(xiàn)如上所述的協(xié)程調(diào)度方法的步驟。
37、為解決上述技術(shù)問題,本發(fā)明還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上所述的協(xié)程調(diào)度方法的步驟。
38、為解決上述技術(shù)問題,本發(fā)明還提供了一種協(xié)程調(diào)度系統(tǒng),包括:
39、判斷單元,用于響應于所述協(xié)程由于任務阻塞出讓執(zhí)行權(quán),判斷所述協(xié)程是否滿足緊急調(diào)度條件;所述緊急調(diào)度條件包括:依賴于所述協(xié)程負責執(zhí)行的任務的其他任務非空和/或所述協(xié)程負責執(zhí)行的任務的完成度達到預設閾值;
40、調(diào)度單元,用于若所述協(xié)程滿足緊急調(diào)度條件,則緊急調(diào)度所述協(xié)程。
41、本發(fā)明所提供的協(xié)程調(diào)度方法,包括:響應于所述協(xié)程由于任務阻塞出讓執(zhí)行權(quán),判斷所述協(xié)程是否滿足緊急調(diào)度條件;所述緊急調(diào)度條件包括:依賴于所述協(xié)程負責執(zhí)行的任務的其他任務非空和/或所述協(xié)程負責執(zhí)行的任務的完成度達到預設閾值;若所述協(xié)程滿足緊急調(diào)度條件,則緊急調(diào)度所述協(xié)程。
42、可見,本發(fā)明所提供的協(xié)程調(diào)度方法,依據(jù)任務的完成度和/或依賴于任務的其他任務是否為空來確定任務的實際執(zhí)行需求。任務的完成度達到預設閾值和/或依賴于任務的其他任務非空,能夠反映任務實際具有緊急處理的需求。因此,當任務的完成度達到預設閾值和/或依賴于任務的其他任務非空時,緊急調(diào)度負責該任務的協(xié)程,能夠及時有效響應任務實際的緊急處理需求,加快任務完成的進度。
43、本發(fā)明所提供的協(xié)程調(diào)度設備、計算機程序產(chǎn)品、計算機可讀存儲介質(zhì)及協(xié)程調(diào)度系統(tǒng)均具有上述技術(shù)效果。
1.一種協(xié)程調(diào)度方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的協(xié)程調(diào)度方法,其特征在于,緊急調(diào)度所述協(xié)程包括:
3.根據(jù)權(quán)利要求2所述的協(xié)程調(diào)度方法,其特征在于,根據(jù)所述協(xié)程的緊急調(diào)度次數(shù),確定所述協(xié)程的調(diào)度順序包括:
4.根據(jù)權(quán)利要求3所述的協(xié)程調(diào)度方法,其特征在于,根據(jù)所述協(xié)程的緊急調(diào)度次數(shù),確定所述協(xié)程對應的標識在協(xié)程排隊數(shù)組中的位置,并將所述協(xié)程對應的標識插入所確定的位置處包括:
5.根據(jù)權(quán)利要求3所述的協(xié)程調(diào)度方法,其特征在于,根據(jù)所述協(xié)程的緊急調(diào)度次數(shù),確定所述協(xié)程對應的標識在協(xié)程排隊數(shù)組中的位置前還包括:
6.根據(jù)權(quán)利要求5所述的協(xié)程調(diào)度方法,其特征在于,還包括:
7.根據(jù)權(quán)利要求3所述的協(xié)程調(diào)度方法,其特征在于,還包括:
8.根據(jù)權(quán)利要求7所述的協(xié)程調(diào)度方法,其特征在于,從協(xié)程隊列中選取元素添加到所述協(xié)程排隊數(shù)組包括:
9.根據(jù)權(quán)利要求1所述的協(xié)程調(diào)度方法,其特征在于,還包括:
10.根據(jù)權(quán)利要求1所述的協(xié)程調(diào)度方法,其特征在于,還包括:
11.根據(jù)權(quán)利要求1所述的協(xié)程調(diào)度方法,其特征在于,還包括:
12.根據(jù)權(quán)利要求1至11任一項所述的協(xié)程調(diào)度方法,其特征在于,還包括:
13.根據(jù)權(quán)利要求12所述的協(xié)程調(diào)度方法,其特征在于,還包括:
14.一種計算機程序產(chǎn)品,包括計算機程序/指令,其特征在于,所述計算機程序/指令被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至13任一項所述的協(xié)程調(diào)度方法的步驟。
15.一種協(xié)程調(diào)度設備,其特征在于,包括:
16.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至13任一項所述的協(xié)程調(diào)度方法的步驟。