一種線程管理方法和線程管理器的制造方法
【專利摘要】本申請(qǐng)?zhí)峁┮环N線程管理方法和線程管理器,通過依據(jù)第一預(yù)設(shè)仲裁規(guī)則選擇一個(gè)線程作為備選線程;依據(jù)第二預(yù)設(shè)仲裁規(guī)則選擇一個(gè)備選線程作為目標(biāo)線程;通過對(duì)所述第一預(yù)設(shè)仲裁規(guī)則和第二預(yù)設(shè)仲裁規(guī)則進(jìn)行合理設(shè)置,可有效降低所述被掛起的目標(biāo)線程的數(shù)量,從而提高了線程處理的性能。
【專利說明】
一種線程管理方法和線程管理器
技術(shù)領(lǐng)域
[0001]本發(fā)明涉線程管理機(jī)制技術(shù)領(lǐng)域,具體涉及一種線程管理方法和線程管理器。
【背景技術(shù)】
[0002]在傳統(tǒng)的硬件系統(tǒng)中,存在一種硬件體系,該硬件體系雖然只有一個(gè)數(shù)據(jù)通路,但是需要并行運(yùn)行多個(gè)線程。該硬件體系設(shè)計(jì)的好壞取決于如何有效的分配數(shù)據(jù)通路運(yùn)行那個(gè)線程。該硬件體系通常采用多級(jí)有限狀態(tài)機(jī)(Finite-state machine,F(xiàn)SM,以下簡(jiǎn)稱FSM)實(shí)現(xiàn)該硬件體系的線程管理,頂層FSM如圖1所示,包括:
[0003]IDLE:空閑狀態(tài)
[0004]RUN_DL:執(zhí)行線程中沒有數(shù)據(jù)依賴的命令,檢查線程是否執(zhí)行完成,讀取下一條命令,確定是否具備預(yù)定條件;
[0005]RUN_DD:執(zhí)行線程中有數(shù)據(jù)依賴的命令,檢查線程是否執(zhí)行完成,讀取下一條命令,確定是否具備預(yù)定條件;
[0006]HOLD:所有當(dāng)前無法執(zhí)行的線程會(huì)進(jìn)入該狀態(tài),等待預(yù)定條件滿足,通過硬件仲裁的方式選擇線程。
[0007]參見上述方案可見,由于RUN_DD在選擇執(zhí)行的線程時(shí),通常是依據(jù)生成時(shí)間順序選取的,并沒有設(shè)置合理的線程選取規(guī)則,因此,降低導(dǎo)致線程處理的性能。
【發(fā)明內(nèi)容】
[0008]有鑒于此,本發(fā)明實(shí)施例提供一種線程管理方法和線程管理器,以優(yōu)化線程處理性能。
[0009]為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供如下技術(shù)方案:
[00?0] —種線程管理方法,包括:
[0011]依據(jù)第一預(yù)設(shè)仲裁規(guī)則選擇一個(gè)線程作為備選線程,將所述備選線程導(dǎo)入備選線程集合;
[0012]依據(jù)第二預(yù)設(shè)仲裁規(guī)則由所述備選線程集合中選擇一個(gè)備選線程作為目標(biāo)線程;
[0013]執(zhí)行所述目標(biāo)線程;
[0014]當(dāng)執(zhí)行到所述目標(biāo)線程中不滿足預(yù)定條件,將所述目標(biāo)線程掛起,將掛起后的目標(biāo)線程導(dǎo)入監(jiān)控線程集合;
[0015]繼續(xù)依據(jù)第一預(yù)設(shè)仲裁規(guī)則選擇一個(gè)線程作為備選線程,將所述備選線程導(dǎo)入備選線程集合;依據(jù)第二預(yù)設(shè)仲裁規(guī)則由所述備選線程集合中選擇一個(gè)備選線程作為目標(biāo)線程。
[0016]優(yōu)選的,上述線程管理方法中,將所述目標(biāo)線程掛起后,還包括:
[0017]實(shí)時(shí)監(jiān)測(cè)監(jiān)控線程集合中是否存在滿足預(yù)定條件的目標(biāo)線程,如果是,將滿足預(yù)定條件的目標(biāo)線程作為暫停線程導(dǎo)入暫停線程集合;
[0018]依據(jù)第三預(yù)設(shè)仲裁規(guī)則由所述暫停線程集合中選擇一個(gè)暫停線程作為備選線程并導(dǎo)入所述備選線程集合。
[0019]優(yōu)選的,上述線程管理方法中,所述依據(jù)第一預(yù)設(shè)仲裁規(guī)則選擇一個(gè)線程作為備選線程之前,還包括:
[0020]判斷是否獲取到仲裁規(guī)則選擇指令,如果是,由仲裁規(guī)則數(shù)據(jù)庫中選擇至少一個(gè)與所述仲裁規(guī)則選擇指令相匹配的備選規(guī)則,將所述備選規(guī)則作為與其匹配的第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則或第三預(yù)設(shè)仲裁規(guī)則。
[0021]優(yōu)選的,上述線程管理方法中,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第一備選規(guī)則,所述第一備選規(guī)則為:
[0022]獲取各個(gè)線程的優(yōu)先級(jí)標(biāo)識(shí);
[0023]依據(jù)所述優(yōu)先級(jí)標(biāo)識(shí)判斷各個(gè)線程的優(yōu)先級(jí);
[0024]選擇優(yōu)先級(jí)最高的線程作為備選線程。
[0025]優(yōu)選的,上述線程管理方法中,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第二備選規(guī)則,所述第二備選規(guī)則為:
[0026]判斷各個(gè)線程與所述監(jiān)控線程集合中的所述目標(biāo)線程的相關(guān)度;
[0027]將與所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的線程作為備選線程。
[0028]優(yōu)選的,上述線程管理方法中,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第三備選規(guī)則,所述第三備選規(guī)則為:
[0029]判斷各個(gè)線程的生成時(shí)間;
[0030]將生成時(shí)間最早的線程作為備選線程。
[0031]優(yōu)選的,上述線程管理方法中,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第二預(yù)設(shè)仲裁規(guī)則相匹配的第四備選規(guī)則,所述第四備選規(guī)則為:
[0032]判斷所述備選線程集合中是否存在已經(jīng)過處理過的備選線程,如果存在,優(yōu)先選擇已經(jīng)處理過的備選線程作為目標(biāo)線程。
[0033]優(yōu)選的,上述線程管理方法中,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第二預(yù)設(shè)仲裁規(guī)則相匹配的第五備選規(guī)則,所述第五備選規(guī)則為:
[0034]判斷所述監(jiān)控線程集合中目標(biāo)線程的數(shù)量是否大于預(yù)設(shè)值,如果是,選擇所述備選線程集合中與所有的所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的備選線程作為目標(biāo)線程;如果否,判斷所述備選線程集合中是否存在已經(jīng)過處理過的備選線程,如果存在,優(yōu)先選擇已經(jīng)處理過的線程作為目標(biāo)線程。
[0035]優(yōu)選的,上述線程管理方法中,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第三預(yù)設(shè)仲裁規(guī)則相匹配的第六備選規(guī)則,所述第六備選規(guī)則為:
[0036]判斷暫停線程集合中各個(gè)暫停線程的生成時(shí)間;
[0037]將生成時(shí)間最早的所述暫停線程作為備選線程。
[0038]優(yōu)選的,上述線程管理方法中,還包括:
[0039]實(shí)時(shí)檢測(cè)并輸出總的所述備選線程的數(shù)量和各個(gè)未處理現(xiàn)成的ID、總的所述目標(biāo)線程的數(shù)量和各個(gè)目標(biāo)線程的ID、總的被掛起的目標(biāo)線程的數(shù)量和各個(gè)被掛起的目標(biāo)線程的ID、總的暫停線程的數(shù)量和各個(gè)暫停線程的ID。
[0040]一種線程管理器,包括:新命令仲裁器、最后仲裁器和執(zhí)行器;
[0041]所述新命令仲裁器,用于依據(jù)第一預(yù)設(shè)仲裁規(guī)則選擇一個(gè)線程作為備選線程,將所述備選線程導(dǎo)入備選線程集合;
[0042]所述最后仲裁器,用于當(dāng)獲取到觸發(fā)信號(hào)后依據(jù)第二預(yù)設(shè)仲裁規(guī)則由所述備選線程集合中選擇一個(gè)備選線程作為目標(biāo)線程;
[0043]執(zhí)行器,用于執(zhí)行所述目標(biāo)線程,當(dāng)執(zhí)行到所述目標(biāo)線程中不滿足預(yù)定條件,將所述目標(biāo)線程掛起,將掛起后的目標(biāo)線程導(dǎo)入監(jiān)控線程集合,當(dāng)所述目標(biāo)線程執(zhí)行完畢或掛起后向所述最后仲裁器發(fā)送觸發(fā)信號(hào)。
[0044]優(yōu)選的,上述線程管理器中,還包括:暫停序列管理器和暫停命令仲裁器;
[0045]所述暫停序列管理器,用于實(shí)時(shí)監(jiān)測(cè)監(jiān)控線程集合中是否存在滿足預(yù)定條件的目標(biāo)線程,如果是,將滿足預(yù)定條件的目標(biāo)線程作為暫停線程導(dǎo)入暫停線程集合;
[0046]所述暫停命令仲裁器,用于依據(jù)第三預(yù)設(shè)仲裁規(guī)則由所述暫停線程集合中選擇一個(gè)暫停線程作為備選線程并導(dǎo)入所述備選線程集合。
[0047]優(yōu)選的,上述線程管理器中,還包括:
[0048]仲裁規(guī)則選擇器,用于判斷是否獲取到仲裁規(guī)則選擇指令,如果是,由仲裁規(guī)則數(shù)據(jù)庫中選擇至少一個(gè)與所述仲裁規(guī)則選擇指令相匹配的備選規(guī)則,將所述備選規(guī)則作為與其匹配的第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則或第三預(yù)設(shè)仲裁規(guī)則;
[0049]存儲(chǔ)器,用于存儲(chǔ)所述仲裁規(guī)則數(shù)據(jù)庫。
[0050]優(yōu)選的,上述線程管理器中,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第一備選規(guī)則,所述第一備選規(guī)則為:
[0051 ]獲取各個(gè)線程的優(yōu)先級(jí)標(biāo)識(shí);
[0052]依據(jù)所述優(yōu)先級(jí)標(biāo)識(shí)判斷各個(gè)線程的優(yōu)先級(jí);
[0053]選擇優(yōu)先級(jí)最高的線程作為備選線程。
[0054]優(yōu)選的,上述線程管理器中,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第二備選規(guī)則,所述第二備選規(guī)則為:
[0055]判斷各個(gè)線程與所有的所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度;
[0056]將與所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的線程作為備選線程。
[0057]優(yōu)選的,上述線程管理器中,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第三備選規(guī)則,所述第三備選規(guī)則為:
[0058]判斷各個(gè)線程的生成時(shí)間;
[0059]將生成時(shí)間最早的所述線程作為備選線程。
[0060]優(yōu)選的,上述線程管理器中,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第二預(yù)設(shè)仲裁規(guī)則相匹配的第四備選規(guī)則,所述第四備選規(guī)則為:
[0061]判斷所述備選線程集合中是否存在已經(jīng)過處理過的備選線程,如果存在,優(yōu)先選擇已經(jīng)處理過的備選線程作為目標(biāo)線程。
[0062]優(yōu)選的,上述線程管理器中,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第二預(yù)設(shè)仲裁規(guī)則相匹配的第五備選規(guī)則,所述第五備選規(guī)則為:
[0063]判斷所述監(jiān)控線程集合中目標(biāo)線程的數(shù)量是否大于預(yù)設(shè)值,如果是,選擇所述備選線程集合中與所有的所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的備選線程作為目標(biāo)線程;如果否,判斷所述備選線程集合中是否存在已經(jīng)過處理過的備選線程,如果存在,優(yōu)先選擇已經(jīng)處理過的線程作為目標(biāo)線程。
[0064]優(yōu)選的,上述線程管理器中,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第三預(yù)設(shè)仲裁規(guī)則相匹配的第六備選規(guī)則,所述第六備選規(guī)則為:
[0065]判斷暫停線程集合中各個(gè)暫停線程的生成時(shí)間;
[0066]將生成時(shí)間最早的所述暫停線程作為備選線程。
[0067]優(yōu)選的,上述線程管理器中,還包括:
[0068]線程數(shù)據(jù)監(jiān)測(cè)器,用于實(shí)時(shí)檢測(cè)并輸出總的所述備選線程的數(shù)量和各個(gè)未處理現(xiàn)成的ID、總的所述目標(biāo)線程的數(shù)量和各個(gè)目標(biāo)線程的ID、總的被掛起的目標(biāo)線程的數(shù)量和各個(gè)被掛起的目標(biāo)線程的ID、總的暫停線程的數(shù)量和各個(gè)暫停線程的ID。
[0069]基于上述技術(shù)方案,本發(fā)明實(shí)施例提供的線程管理方法和裝置,通過依據(jù)第一預(yù)設(shè)仲裁規(guī)則選擇一個(gè)線程作為備選線程;依據(jù)第二預(yù)設(shè)仲裁規(guī)則選擇一個(gè)備選線程作為目標(biāo)線程;通過對(duì)所述第一預(yù)設(shè)仲裁規(guī)則和第二預(yù)設(shè)仲裁規(guī)則進(jìn)行合理設(shè)置,可有效降低所述被掛起的目標(biāo)線程的數(shù)量,從而提高了線程處理的性能。
【附圖說明】
[0070]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0071]圖1為現(xiàn)有技術(shù)中多級(jí)有限狀態(tài)機(jī)線程管理機(jī)制中頂層FSM的線程處理流程示意圖;
[0072]圖2為本申請(qǐng)實(shí)施例公開的一種線程處理方法的流程示意圖;
[0073]圖3為本申請(qǐng)另一實(shí)施例公開的一種線程處理方法的流程示意圖;
[0074]圖4為本申請(qǐng)實(shí)施例公開的依據(jù)選擇指令選擇預(yù)設(shè)仲裁規(guī)則的流程示意圖;
[0075]圖5為本申請(qǐng)實(shí)施例公開的一種線程管理器的結(jié)構(gòu)示意圖;
[0076]圖6為本申請(qǐng)另一實(shí)施例公開的一種線程管理器的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0077]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0078]本申請(qǐng)公開了一種線程管理方法和系統(tǒng),以實(shí)現(xiàn)優(yōu)化線程處理性能的目的,提高線程的處理速度。
[0079]本申請(qǐng)公開的上述線程管理方法的基本原理為:通過設(shè)置預(yù)設(shè)的仲裁規(guī)則,依據(jù)所述預(yù)設(shè)的仲裁規(guī)則進(jìn)行現(xiàn)成的選取和處理,從而降低被掛起的目標(biāo)線程的數(shù)量,從而防止掛起的線程堆積,提高了線程的處理性能,進(jìn)而調(diào)高線程的處理速度。
[0080]具體方案如下:
[0081 ]參見圖2,本申請(qǐng)實(shí)施例公開的線程管理方法,包括:
[0082] 步驟SlOl:選擇備選線程;
[0083]依據(jù)第一預(yù)設(shè)仲裁規(guī)則由所有的未處理的線程中,選擇一個(gè)未處理的線程作為備選線程,將所述備選線程導(dǎo)入備選線程集合;
[0084]步驟S102:選擇目標(biāo)線程;
[0085]依據(jù)第二預(yù)設(shè)仲裁規(guī)則由所述備選線程集合中選擇一個(gè)備選線程作為目標(biāo)線程;
[0086]需要說明的是,步驟SlOl和步驟S102在實(shí)際執(zhí)行過程中,沒有固定先后順序,可以先執(zhí)彳丁步驟SlOI,后執(zhí)彳丁步驟S102,或是先執(zhí)彳丁步驟S102,后執(zhí)彳丁步驟SlOI,或是兩個(gè)步驟同時(shí)執(zhí)行;
[0087]步驟S103:執(zhí)行所述目標(biāo)線程,當(dāng)執(zhí)行到所述目標(biāo)線程不滿足預(yù)設(shè)條件時(shí),執(zhí)行步驟S104;
[0088]每條線程均由多個(gè)命令組成,有的命令在執(zhí)行時(shí)需要將由執(zhí)行其他線程生成的結(jié)果作為執(zhí)行條件,當(dāng)全部獲取到這些結(jié)果以后,該命令才可以執(zhí)行,當(dāng)執(zhí)行所述目標(biāo)線程時(shí),如果執(zhí)行到該目標(biāo)線程存在條件不足的命令時(shí),即可認(rèn)為該目標(biāo)線程不滿足預(yù)設(shè)條件;
[0089]步驟S104:掛起不滿足預(yù)設(shè)條件的目標(biāo)線程,繼續(xù)執(zhí)行步驟SlOl和步驟S102;
[0090]將掛起后的目標(biāo)線程導(dǎo)入監(jiān)控線程集合。
[0091]其中,上述步驟SlOl和步驟S102中的所述第一預(yù)設(shè)仲裁規(guī)則和所述第二預(yù)設(shè)仲裁規(guī)則的具體仲裁方案可以依據(jù)用戶需求自行設(shè)定,只要能夠保證該仲裁規(guī)則能夠有效降低已掛起的目標(biāo)現(xiàn)成的數(shù)量即可,具體所述第一預(yù)設(shè)仲裁規(guī)則和第二預(yù)設(shè)仲裁規(guī)則的表現(xiàn)形式可以為,優(yōu)先選取執(zhí)行結(jié)果作為掛起的目標(biāo)線程中的某個(gè)執(zhí)行的條件的線程。
[0092]參見本申請(qǐng)上述實(shí)施例公開的線程管理方法,通過依據(jù)所述第一預(yù)設(shè)仲裁規(guī)則選擇一個(gè)未處理的線程作為備選線程;依據(jù)第二預(yù)設(shè)仲裁規(guī)則選擇一個(gè)備選線程作為目標(biāo)線程;通過對(duì)所述第一預(yù)設(shè)仲裁規(guī)則和第二預(yù)設(shè)仲裁規(guī)則進(jìn)行合理設(shè)置,可有效降低被掛起的所述目標(biāo)線程的數(shù)量,降低的線程處理過程中的數(shù)據(jù)擁堵現(xiàn)象,從而提高了線程處理的性能,提高了線程處理速度。
[0093]為進(jìn)一步優(yōu)化上述實(shí)施例,為了保證當(dāng)被掛起的目標(biāo)線程滿足條件后能夠及時(shí)被系統(tǒng)感知,并對(duì)該滿足條件的線程繼續(xù)處理,參見圖3,上述方法中,所述步驟S104之后,還可以包括:
[0094]步驟S105:實(shí)時(shí)監(jiān)測(cè)監(jiān)控線程集合中是否存在滿足預(yù)定條件的目標(biāo)線程,如果是,執(zhí)行步驟S106;
[0095]在該步驟中,獲取被掛起的目標(biāo)線程的所需執(zhí)行條件,獲取以執(zhí)行的目標(biāo)現(xiàn)成的執(zhí)行結(jié)果,判斷所述被掛起的目標(biāo)線程所需執(zhí)行的條件是否全部生成,如果是,則認(rèn)為該被掛起的目標(biāo)線程已經(jīng)滿足預(yù)定條件;
[0096]步驟S106:將滿足預(yù)定條件的目標(biāo)線程作為暫停線程導(dǎo)入暫停線程集合;
[0097]步驟S107:依據(jù)第三預(yù)設(shè)仲裁規(guī)則由所述暫停線程集合中選擇一個(gè)暫停線程作為備選線程并導(dǎo)入所述備選線程集合。
[0098]其中,在本申請(qǐng)上述實(shí)施例公開的方法中,在執(zhí)行所述步驟S101、S102、S103、S104、S106和S107可同時(shí)執(zhí)行,所述圖1和個(gè)實(shí)施例中的描述方式只是為了方便用戶理解。
[0099]其中,所述第三預(yù)設(shè)仲裁規(guī)則的具體仲裁方案與所述第一預(yù)設(shè)仲裁規(guī)則和第二預(yù)設(shè)仲裁規(guī)則的設(shè)定方式類似,只要能夠保證所述第三預(yù)設(shè)仲裁規(guī)則能夠有效降低已掛起的目標(biāo)現(xiàn)成的數(shù)量即可,其表現(xiàn)形式可以為,優(yōu)先選取執(zhí)行結(jié)果作為掛起的目標(biāo)線程中的某個(gè)執(zhí)行的條件的暫停線程作為備選線程。
[0100]可以理解的是,本申請(qǐng)上述實(shí)施例公開的技術(shù)方案中,所述第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則和第三預(yù)設(shè)仲裁規(guī)則的具體執(zhí)行方案可以依據(jù)用戶需求自行配置,針對(duì)不同的處理需求,可選擇不同的預(yù)設(shè)仲裁規(guī)則作為所述第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則和第三預(yù)設(shè)仲裁規(guī)則,對(duì)此,為了方便用戶更加方便快捷的設(shè)定所述第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則和第三預(yù)設(shè)仲裁規(guī)則,可預(yù)先設(shè)置一仲裁規(guī)則數(shù)據(jù)庫,在所述仲裁規(guī)則數(shù)據(jù)庫中預(yù)存儲(chǔ)用戶依據(jù)不同的仲裁需求編訂的多個(gè)備選規(guī)則,由此,參見圖4,執(zhí)行上述方法之前還可以包括所述依:
[0101]步驟S100:判斷是否獲取到仲裁規(guī)則選擇指令,如果是,執(zhí)行步驟S110,
[0102]步驟S110:由仲裁規(guī)則數(shù)據(jù)庫中選擇至少一個(gè)與所述仲裁規(guī)則選擇指令相匹配的備選規(guī)則;
[0103]步驟Sill:將所述備選規(guī)則作為與其匹配的第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則或第三預(yù)設(shè)仲裁規(guī)則。
[0104]在上述方案中,用戶輸入的一個(gè)仲裁規(guī)則選擇指令可以對(duì)應(yīng)一個(gè)備選規(guī)則也可以對(duì)應(yīng)對(duì)個(gè)多個(gè)備選規(guī)則。
[0105]當(dāng)一個(gè)仲裁規(guī)則選擇指令對(duì)應(yīng)一個(gè)備選規(guī)則時(shí),由仲裁規(guī)則數(shù)據(jù)庫中確定唯一一個(gè)備選規(guī)則,由該備選規(guī)則的標(biāo)記信息確定其匹配的是第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則還是第三預(yù)設(shè)仲裁規(guī)則,當(dāng)確定其匹配的預(yù)設(shè)仲裁規(guī)則以后,將該備選規(guī)則作為與其匹配的預(yù)設(shè)仲裁規(guī)則,進(jìn)入上述仲裁方法中,對(duì)線程進(jìn)行仲裁;
[0106]當(dāng)一個(gè)仲裁規(guī)則選擇指令對(duì)應(yīng)多個(gè)(兩個(gè)或三個(gè))備選規(guī)則時(shí),由仲裁規(guī)則數(shù)據(jù)庫中確定唯與所述仲裁規(guī)則選擇指令匹配的所有備選規(guī)則,由確定的各個(gè)備選規(guī)則的標(biāo)記信息確定其匹配的是第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則還是第三預(yù)設(shè)仲裁規(guī)則,當(dāng)確定分別與各個(gè)備選規(guī)則匹配的各個(gè)預(yù)設(shè)仲裁規(guī)則以后,將確定的各個(gè)備選規(guī)則作為與其匹配的預(yù)設(shè)仲裁規(guī)則,進(jìn)入上述仲裁方法中,對(duì)線程進(jìn)行仲裁,其中,每個(gè)仲裁規(guī)則選擇指令所對(duì)應(yīng)的仲裁規(guī)則可以由預(yù)設(shè)的指令-規(guī)則映射列表查詢。
[0107]用戶可以依據(jù)自身需求在所述仲裁規(guī)則數(shù)據(jù)庫中預(yù)存多個(gè)編訂好的備選規(guī)則,例如,所述仲裁規(guī)則數(shù)據(jù)庫中的備選規(guī)則可以包括:與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第一備選規(guī)則,所述第一備選規(guī)則的具體執(zhí)行方案為:
[0108]獲取各個(gè)未處理線程的優(yōu)先級(jí)標(biāo)識(shí);
[0109]依據(jù)所述優(yōu)先級(jí)標(biāo)識(shí)判斷各個(gè)未處理線程的優(yōu)先級(jí);
[0110]選擇優(yōu)先級(jí)最高的未處理線程作為備選線程。
[0111]在本申請(qǐng)上述實(shí)施例公開的技術(shù)方案中,可預(yù)先對(duì)所有未處理的線程進(jìn)行優(yōu)先級(jí)劃分,當(dāng)采用預(yù)設(shè)仲裁規(guī)則選擇線程時(shí),優(yōu)先選擇優(yōu)先級(jí)最高的線程。
[0112]在劃分各個(gè)線程的優(yōu)先級(jí)時(shí),可將執(zhí)行結(jié)果作為最多個(gè)數(shù)的其他線程的執(zhí)行條件的線程作為優(yōu)先級(jí)最高的線程,例如,線程a的執(zhí)行結(jié)果可作為其他5個(gè)線程的執(zhí)行條件,線程b的執(zhí)行結(jié)果可作為其他4個(gè)線程的執(zhí)行條件,則將線程a賦予優(yōu)先級(jí)較高的優(yōu)先級(jí)標(biāo)識(shí),當(dāng)然,如果多個(gè)線程作為數(shù)目相同的其他線程的執(zhí)行條件時(shí),依據(jù)這些線程的生成時(shí)間先后的順序進(jìn)行選取,優(yōu)先選取這些線程中生成時(shí)間最早的線程。
[0113]所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少還可以包括:與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第二備選規(guī)則,所述第二備選規(guī)則的具體執(zhí)行方案為:
[0114]判斷各個(gè)未處理線程與所有的所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度;
[0115]將與所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的未處理線程作為備選線程。
[0116]在判斷各個(gè)線程的與所述監(jiān)控集合中的目標(biāo)線程的相關(guān)時(shí),可通過判斷各個(gè)的執(zhí)行結(jié)果作為監(jiān)控線程集合中的目標(biāo)線程的執(zhí)行條件數(shù)量來判斷,例如,線程a的執(zhí)行結(jié)果可作為所述監(jiān)控集合中5個(gè)目標(biāo)線程的執(zhí)行條件,線程b的執(zhí)行結(jié)果可作為所述監(jiān)控線程集合中4個(gè)目標(biāo)線程的執(zhí)行條件,選擇線程a作為備選線程,當(dāng)然,如果多個(gè)線程的執(zhí)行結(jié)果作為監(jiān)控線程集合中的目標(biāo)線程的執(zhí)行條件的數(shù)目相同時(shí),可依據(jù)這些線程的生成時(shí)間先后的順序進(jìn)行選取,優(yōu)先選取這些線程中生成時(shí)間最早的線程。
[0117]當(dāng)然上述第二備選規(guī)則也可以與所述第三預(yù)設(shè)仲裁規(guī)則相匹配,此時(shí),所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括第七備選規(guī)則,所述第七備選規(guī)則的具體執(zhí)行方案為:
[0118]判斷各個(gè)暫停線程與所有的所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度;
[0119]將與所有的監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的暫停線程作為備選線程。
[0120]當(dāng)然,所述仲裁規(guī)則數(shù)據(jù)庫中與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的備選規(guī)則除了上述第一備選規(guī)則、第二備選規(guī)則之外,還可以具有一與所述第一預(yù)設(shè)仲裁規(guī)則匹配第三備選規(guī)則,所述第三備選規(guī)則的具體執(zhí)行方案為:
[0121]判斷各個(gè)未處理線程的生成時(shí)間;
[0122]將生成時(shí)間最早的所述未處理線程作為備選線程。
[0123]當(dāng)然,所述第三備選規(guī)則可以作為默認(rèn)規(guī)則來使用,其可以同時(shí)與所述第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則、第三預(yù)設(shè)仲裁規(guī)則相匹配,當(dāng)其與所述第二預(yù)設(shè)仲裁規(guī)則相匹配時(shí),其表現(xiàn)形式為:判斷備選線程集合中各個(gè)備選線程的生成時(shí)間;將生成時(shí)間最早的所述備選線程作為目標(biāo)線程。當(dāng)其與所述第三預(yù)設(shè)仲裁規(guī)則相匹配時(shí),其表現(xiàn)形式為:判斷各個(gè)暫停處理線程的生成時(shí)間;將生成時(shí)間最早的所述暫停線程作為備選線程。
[0124]和與所述第一預(yù)設(shè)仲裁規(guī)則匹配的多個(gè)備選規(guī)則類似,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則還可以包括多個(gè)與所述第二預(yù)設(shè)仲裁規(guī)則相匹配備選規(guī)則,例如該與所述第二預(yù)設(shè)仲裁規(guī)則相匹配備選規(guī)則可以包括第四備選規(guī)則、第五備選規(guī)則、第八備選規(guī)則和/或第九備選規(guī)則。
[0125]所述第四備選規(guī)則的具體執(zhí)行方案為:
[0126]判斷所述備選線程集合中是否存在已經(jīng)過處理過的備選線程,如果存在,優(yōu)先選擇已經(jīng)處理過的備選線程作為目標(biāo)線程。
[0127]所述第五備選規(guī)則的具體執(zhí)行方案為:
[0128]判斷所述監(jiān)控線程集合中目標(biāo)線程的數(shù)量是否大于預(yù)設(shè)值,如果是,選擇所述備選線程集合中與所有的所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的備選線程作為目標(biāo)線程;如果否,判斷所述備選線程集合中是否存在已經(jīng)過處理過的備選線程,如果存在,優(yōu)先選擇已經(jīng)處理過的線程作為目標(biāo)線程。
[0129]與所述第一備選規(guī)則類似,所述第八備選規(guī)則的具體執(zhí)行方案可以為:
[0130]獲取備選線程集合中的各個(gè)備選線程的優(yōu)先級(jí)標(biāo)識(shí);
[0131]依據(jù)所述優(yōu)先級(jí)標(biāo)識(shí)判斷各個(gè)備選線程的優(yōu)先級(jí);
[0132]選擇優(yōu)先級(jí)最高的備選線程作為備選線程。
[0133]與所述第二備選規(guī)則類似,所述第九備選規(guī)則的具體執(zhí)行方案可以為:
[0134]判斷備選線程集合中各個(gè)備選線程與所述監(jiān)控線程集合中的所述目標(biāo)線程的相關(guān)度;
[0135]將與監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的線程作為備選線程。
[0136]和與所述第一預(yù)設(shè)仲裁規(guī)則匹配的多個(gè)備選規(guī)則類似,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則還可以包括多個(gè)與所述第三預(yù)設(shè)仲裁規(guī)則相匹配備選規(guī)則,例如該與所述第三預(yù)設(shè)仲裁規(guī)則相匹配備選規(guī)則可以包括第六備選規(guī)則、第十備選規(guī)則和/或第十一備選規(guī)則;
[0137]所述第六備選規(guī)則的具體執(zhí)行方案為:
[0138]判斷暫停線程集合中各個(gè)暫停線程的生成時(shí)間;
[0139]將生成時(shí)間最早的所述暫停線程作為備選線程。
[0140]與所述第一備選規(guī)則類似,所述第十備選規(guī)則的具體執(zhí)行方案可以為:
[0141]獲取暫停線程集合中的各個(gè)暫停線程的優(yōu)先級(jí)標(biāo)識(shí);
[0142]依據(jù)所述優(yōu)先級(jí)標(biāo)識(shí)判斷各個(gè)暫停線程的優(yōu)先級(jí);
[0143]選擇優(yōu)先級(jí)最高的暫停線程作為備選線程。
[0144]與所述第二備選規(guī)則類似,所述第十一備選規(guī)則的具體執(zhí)行方案可以為:
[0145]判斷暫停線程集合中各個(gè)暫停線程與所述監(jiān)控線程集合中的所述目標(biāo)線程的相關(guān)度;
[0146]將與監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的暫停作為備選線程。
[0147]為了方便用戶實(shí)時(shí)了解線程的處理情況,本申請(qǐng)上述實(shí)施例公開的方法中還可以包括:
[0148]實(shí)時(shí)檢測(cè)并輸出總的所述備選線程的數(shù)量和各個(gè)未處理現(xiàn)成的ID、總的所述目標(biāo)線程的數(shù)量和各個(gè)目標(biāo)線程的ID、總的被掛起的目標(biāo)線程的數(shù)量和各個(gè)被掛起的目標(biāo)線程的ID、總的暫停線程的數(shù)量和各個(gè)暫停線程的ID。
[0149]可以理解的是,在本申請(qǐng)上述實(shí)施例公開的方法執(zhí)行之前,用戶可以對(duì)上述方法處理的總的線程數(shù)目進(jìn)行設(shè)定,即通過調(diào)整公共參數(shù)來調(diào)整上述方法處理的總的線程的數(shù)目,所述總的線程包括:處理線程集合中的線程、監(jiān)控線程集合中的線程、暫停線程集合中的線程、以及正在執(zhí)行的目標(biāo)線程。
[0150]綜上,由本申請(qǐng)上述實(shí)施例公開的方法可見,所述第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則和第三預(yù)設(shè)仲裁規(guī)則仲裁策略由用戶自行配置,根據(jù)實(shí)際的線程特性,隨時(shí)變更仲裁策略,以使得線程處理達(dá)到最佳性能。
[0151]在每個(gè)集合中的線程的數(shù)目和ID模塊都可見。從而根據(jù)每個(gè)集合中線程的數(shù)目和ID很容易得到具體線程的執(zhí)行情況,并統(tǒng)計(jì)出總的線程執(zhí)行數(shù)據(jù),比如平均執(zhí)行時(shí)間,最短/最長執(zhí)行時(shí)間等等。
[0152]針對(duì)于上述方法,本申請(qǐng)還公開了一種線程管理器,與上述方法相對(duì)應(yīng),參見圖5,該線程管理器包括:新命令仲裁100、最后仲裁器200和執(zhí)行器300;
[0153]所述新命令仲裁器100,用于依據(jù)第一預(yù)設(shè)仲裁規(guī)則選擇一個(gè)線程作為備選線程,將所述備選線程導(dǎo)入備選線程集合;
[0154]所述最后仲裁器200,用于當(dāng)獲取到觸發(fā)信號(hào)后依據(jù)第二預(yù)設(shè)仲裁規(guī)則由所述備選線程集合中選擇一個(gè)備選線程作為目標(biāo)線程;
[0155]執(zhí)行器300,用于執(zhí)行所述目標(biāo)線程,當(dāng)執(zhí)行到所述目標(biāo)線程中不滿足預(yù)定條件,將所述目標(biāo)線程掛起,將掛起后的目標(biāo)線程導(dǎo)入監(jiān)控線程集合,當(dāng)所述目標(biāo)線程執(zhí)行完畢或掛起后向所述最后仲裁器發(fā)送觸發(fā)信號(hào)。
[0156]每條線程均由多個(gè)命令組成,有的命令在執(zhí)行時(shí)需要將由執(zhí)行其他線程生成的結(jié)果作為執(zhí)行條件,當(dāng)全部獲取到這些結(jié)果以后,該命令才可以執(zhí)行,當(dāng)執(zhí)行所述目標(biāo)線程時(shí),如果執(zhí)行到該目標(biāo)線程存在條件不足的命令時(shí),即可認(rèn)為該目標(biāo)線程不滿足預(yù)設(shè)條件;
[0157]與上述方法相對(duì)應(yīng),參見圖6,上述線程管理器還包括:暫停序列管理器400和暫停命令仲裁器500;
[0158]所述暫停序列管理器400,用于實(shí)時(shí)監(jiān)測(cè)監(jiān)控線程集合中是否存在滿足預(yù)定條件的目標(biāo)線程,如果是,將滿足預(yù)定條件的目標(biāo)線程作為暫停線程導(dǎo)入暫停線程集合;
[0159]所述暫停序列管理器400具體通過獲取被掛起的目標(biāo)線程的所需執(zhí)行條件,獲取以執(zhí)行的目標(biāo)現(xiàn)成的執(zhí)行結(jié)果,判斷所述被掛起的目標(biāo)線程所需執(zhí)行的條件是否全部生成,如果是,則認(rèn)為該被掛起的目標(biāo)線程已經(jīng)滿足預(yù)定條件;
[0160]所述暫停命令仲裁器500,用于依據(jù)第三預(yù)設(shè)仲裁規(guī)則由所述暫停線程集合中選擇一個(gè)暫停線程作為備選線程并導(dǎo)入所述備選線程集合。
[0161]與上述方法相對(duì)應(yīng),參見圖6,上述線程管理器還包括:還包括:
[0162]仲裁規(guī)則選擇器600,用于判斷是否獲取到仲裁規(guī)則選擇指令,如果是,由仲裁規(guī)則數(shù)據(jù)庫中選擇至少一個(gè)與所述仲裁規(guī)則選擇指令相匹配的備選規(guī)則,將所述備選規(guī)則作為與其匹配的第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則或第三預(yù)設(shè)仲裁規(guī)則;
[0163]存儲(chǔ)器700,用于存儲(chǔ)所述仲裁規(guī)則數(shù)據(jù)庫。
[0164]其中,與上述方法類似,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則可以包括:與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第一備選規(guī)則、第二備選規(guī)則和/或第三備選規(guī)則;與所述第二預(yù)設(shè)仲裁規(guī)則相匹配的第四備選規(guī)則、第五備選規(guī)則、第八備選規(guī)則和/或第九備選規(guī)則;所述第三預(yù)設(shè)仲裁規(guī)則相匹配備選規(guī)則可以包括第六備選規(guī)則、第七備選規(guī)則、第十備選規(guī)則、第十一備選規(guī)則、第十二備選規(guī)則和第十三備選規(guī)則;
[0165]上述第一備選規(guī)則、第二備選規(guī)則、第三備選規(guī)則、第四備選規(guī)則、第五備選規(guī)則、第六備選規(guī)則、第七備選規(guī)則、第八備選規(guī)則、第九備選規(guī)則、第十備選規(guī)則和第十一備選規(guī)則的具體執(zhí)行方案可參見本申請(qǐng)方法介紹部分的相關(guān)介紹,在此并不過多說明。
[0166]與上述方法相對(duì)應(yīng),本申請(qǐng)上述實(shí)施例公開的線程管理器中,還可以包括:
[0167]線程數(shù)據(jù)監(jiān)測(cè)器,用于實(shí)時(shí)檢測(cè)并輸出總的所述備選線程的數(shù)量和各個(gè)未處理現(xiàn)成的ID、總的所述目標(biāo)線程的數(shù)量和各個(gè)目標(biāo)線程的ID、總的被掛起的目標(biāo)線程的數(shù)量和各個(gè)被掛起的目標(biāo)線程的ID、總的暫停線程的數(shù)量和各個(gè)暫停線程的ID。
[0168]在本申請(qǐng)上述實(shí)施例公開的裝置部分中,用戶可以對(duì)所述執(zhí)行器進(jìn)行修改,以細(xì)化線程最小執(zhí)行單元------命令,將命令細(xì)化任務(wù)劃分粒度。
[0169]本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法部分說明即可。
[0170]對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
【主權(quán)項(xiàng)】
1.一種線程管理方法,其特征在于,包括: 依據(jù)第一預(yù)設(shè)仲裁規(guī)則選擇一個(gè)線程作為備選線程,將所述備選線程導(dǎo)入備選線程集合; 依據(jù)第二預(yù)設(shè)仲裁規(guī)則由所述備選線程集合中選擇一個(gè)備選線程作為目標(biāo)線程; 執(zhí)行所述目標(biāo)線程; 當(dāng)執(zhí)行到所述目標(biāo)線程中不滿足預(yù)定條件,將所述目標(biāo)線程掛起,將掛起后的目標(biāo)線程導(dǎo)入監(jiān)控線程集合; 繼續(xù)依據(jù)第一預(yù)設(shè)仲裁規(guī)則選擇一個(gè)線程作為備選線程,將所述備選線程導(dǎo)入備選線程集合;依據(jù)第二預(yù)設(shè)仲裁規(guī)則由所述備選線程集合中選擇一個(gè)備選線程作為目標(biāo)線程。2.根據(jù)權(quán)利要求1所述的線程管理方法,其特征在于,將所述目標(biāo)線程掛起后,還包括: 實(shí)時(shí)監(jiān)測(cè)監(jiān)控線程集合中是否存在滿足預(yù)定條件的目標(biāo)線程,如果是,將滿足預(yù)定條件的目標(biāo)線程作為暫停線程導(dǎo)入暫停線程集合; 依據(jù)第三預(yù)設(shè)仲裁規(guī)則由所述暫停線程集合中選擇一個(gè)暫停線程作為備選線程并導(dǎo)入所述備選線程集合。3.根據(jù)權(quán)利要求2所述的線程管理方法,其特征在于,所述依據(jù)第一預(yù)設(shè)仲裁規(guī)則選擇一個(gè)線程作為備選線程之前,還包括: 判斷是否獲取到仲裁規(guī)則選擇指令,如果是,由仲裁規(guī)則數(shù)據(jù)庫中選擇至少一個(gè)與所述仲裁規(guī)則選擇指令相匹配的備選規(guī)則,將所述備選規(guī)則作為與其匹配的第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則或第三預(yù)設(shè)仲裁規(guī)則。4.根據(jù)權(quán)利要求3所述的線程管理方法,其特征在于,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第一備選規(guī)則,所述第一備選規(guī)則為: 獲取各個(gè)線程的優(yōu)先級(jí)標(biāo)識(shí); 依據(jù)所述優(yōu)先級(jí)標(biāo)識(shí)判斷各個(gè)線程的優(yōu)先級(jí); 選擇優(yōu)先級(jí)最高的線程作為備選線程。5.根據(jù)權(quán)利要求3所述的線程管理方法,其特征在于,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第二備選規(guī)則,所述第二備選規(guī)則為: 判斷各個(gè)線程與所述監(jiān)控線程集合中的所述目標(biāo)線程的相關(guān)度; 將與所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的線程作為備選線程。6.根據(jù)權(quán)利要求3所述的線程管理方法,其特征在于,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第三備選規(guī)則,所述第三備選規(guī)則為: 判斷各個(gè)線程的生成時(shí)間; 將生成時(shí)間最早的線程作為備選線程。7.根據(jù)權(quán)利要求3所述的線程管理方法,其特征在于,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第二預(yù)設(shè)仲裁規(guī)則相匹配的第四備選規(guī)則,所述第四備選規(guī)則為: 判斷所述備選線程集合中是否存在已經(jīng)過處理過的備選線程,如果存在,優(yōu)先選擇已經(jīng)處理過的備選線程作為目標(biāo)線程。8.根據(jù)權(quán)利要求3所述的線程管理方法,其特征在于,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第二預(yù)設(shè)仲裁規(guī)則相匹配的第五備選規(guī)則,所述第五備選規(guī)則為: 判斷所述監(jiān)控線程集合中目標(biāo)線程的數(shù)量是否大于預(yù)設(shè)值,如果是,選擇所述備選線程集合中與所有的所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的備選線程作為目標(biāo)線程;如果否,判斷所述備選線程集合中是否存在已經(jīng)過處理過的備選線程,如果存在,優(yōu)先選擇已經(jīng)處理過的線程作為目標(biāo)線程。9.根據(jù)權(quán)利要求3所述的線程管理方法,其特征在于,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第三預(yù)設(shè)仲裁規(guī)則相匹配的第六備選規(guī)則,所述第六備選規(guī)則為: 判斷暫停線程集合中各個(gè)暫停線程的生成時(shí)間; 將生成時(shí)間最早的所述暫停線程作為備選線程。10.根據(jù)權(quán)利要求1-9任意一項(xiàng)所述的線程管理方法,其特征在于,還包括: 實(shí)時(shí)檢測(cè)并輸出總的所述備選線程的數(shù)量和各個(gè)未處理現(xiàn)成的ID、總的所述目標(biāo)線程的數(shù)量和各個(gè)目標(biāo)線程的ID、總的被掛起的目標(biāo)線程的數(shù)量和各個(gè)被掛起的目標(biāo)線程的ID、總的暫停線程的數(shù)量和各個(gè)暫停線程的ID。11.一種線程管理器,其特征在于,包括:新命令仲裁器、最后仲裁器和執(zhí)行器; 所述新命令仲裁器,用于依據(jù)第一預(yù)設(shè)仲裁規(guī)則選擇一個(gè)線程作為備選線程,將所述備選線程導(dǎo)入備選線程集合; 所述最后仲裁器,用于當(dāng)獲取到觸發(fā)信號(hào)后依據(jù)第二預(yù)設(shè)仲裁規(guī)則由所述備選線程集合中選擇一個(gè)備選線程作為目標(biāo)線程; 執(zhí)行器,用于執(zhí)行所述目標(biāo)線程,當(dāng)執(zhí)行到所述目標(biāo)線程中不滿足預(yù)定條件,將所述目標(biāo)線程掛起,將掛起后的目標(biāo)線程導(dǎo)入監(jiān)控線程集合,當(dāng)所述目標(biāo)線程執(zhí)行完畢或掛起后向所述最后仲裁器發(fā)送觸發(fā)信號(hào)。12.根據(jù)權(quán)利要求11所述的線程管理器,其特征在于,還包括:暫停序列管理器和暫停命令仲裁器; 所述暫停序列管理器,用于實(shí)時(shí)監(jiān)測(cè)監(jiān)控線程集合中是否存在滿足預(yù)定條件的目標(biāo)線程,如果是,將滿足預(yù)定條件的目標(biāo)線程作為暫停線程導(dǎo)入暫停線程集合; 所述暫停命令仲裁器,用于依據(jù)第三預(yù)設(shè)仲裁規(guī)則由所述暫停線程集合中選擇一個(gè)暫停線程作為備選線程并導(dǎo)入所述備選線程集合。13.根據(jù)權(quán)利要求12所述的線程管理器,其特征在于,還包括: 仲裁規(guī)則選擇器,用于判斷是否獲取到仲裁規(guī)則選擇指令,如果是,由仲裁規(guī)則數(shù)據(jù)庫中選擇至少一個(gè)與所述仲裁規(guī)則選擇指令相匹配的備選規(guī)則,將所述備選規(guī)則作為與其匹配的第一預(yù)設(shè)仲裁規(guī)則、第二預(yù)設(shè)仲裁規(guī)則或第三預(yù)設(shè)仲裁規(guī)則; 存儲(chǔ)器,用于存儲(chǔ)所述仲裁規(guī)則數(shù)據(jù)庫。14.根據(jù)權(quán)利要求13所述的線程管理器,其特征在于,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第一備選規(guī)則,所述第一備選規(guī)則為: 獲取各個(gè)線程的優(yōu)先級(jí)標(biāo)識(shí); 依據(jù)所述優(yōu)先級(jí)標(biāo)識(shí)判斷各個(gè)線程的優(yōu)先級(jí); 選擇優(yōu)先級(jí)最高的線程作為備選線程。15.根據(jù)權(quán)利要求13所述的線程管理器,其特征在于,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第二備選規(guī)則,所述第二備選規(guī)則為: 判斷各個(gè)線程與所有的所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度; 將與所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的線程作為備選線程。16.根據(jù)權(quán)利要求13所述的線程管理器,其特征在于,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第一預(yù)設(shè)仲裁規(guī)則相匹配的第三備選規(guī)則,所述第三備選規(guī)則為: 判斷各個(gè)線程的生成時(shí)間; 將生成時(shí)間最早的所述線程作為備選線程。17.根據(jù)權(quán)利要求13所述的線程管理器,其特征在于,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第二預(yù)設(shè)仲裁規(guī)則相匹配的第四備選規(guī)則,所述第四備選規(guī)則為: 判斷所述備選線程集合中是否存在已經(jīng)過處理過的備選線程,如果存在,優(yōu)先選擇已經(jīng)處理過的備選線程作為目標(biāo)線程。18.根據(jù)權(quán)利要求13所述的線程管理器,其特征在于,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第二預(yù)設(shè)仲裁規(guī)則相匹配的第五備選規(guī)則,所述第五備選規(guī)則為: 判斷所述監(jiān)控線程集合中目標(biāo)線程的數(shù)量是否大于預(yù)設(shè)值,如果是,選擇所述備選線程集合中與所有的所述監(jiān)控線程集合中的目標(biāo)線程的相關(guān)度最高的備選線程作為目標(biāo)線程;如果否,判斷所述備選線程集合中是否存在已經(jīng)過處理過的備選線程,如果存在,優(yōu)先選擇已經(jīng)處理過的線程作為目標(biāo)線程。19.根據(jù)權(quán)利要求13所述的線程管理器,其特征在于,所述仲裁規(guī)則數(shù)據(jù)庫的備選規(guī)則至少包括與所述第三預(yù)設(shè)仲裁規(guī)則相匹配的第六備選規(guī)則,所述第六備選規(guī)則為: 判斷暫停線程集合中各個(gè)暫停線程的生成時(shí)間; 將生成時(shí)間最早的所述暫停線程作為備選線程。20.根據(jù)權(quán)利要求11-19任意一項(xiàng)所述的線程管理器,其特征在于,還包括: 線程數(shù)據(jù)監(jiān)測(cè)器,用于實(shí)時(shí)檢測(cè)并輸出總的所述備選線程的數(shù)量和各個(gè)未處理現(xiàn)成的ID、總的所述目標(biāo)線程的數(shù)量和各個(gè)目標(biāo)線程的ID、總的被掛起的目標(biāo)線程的數(shù)量和各個(gè)被掛起的目標(biāo)線程的ID、總的暫停線程的數(shù)量和各個(gè)暫停線程的ID。
【文檔編號(hào)】G06F9/50GK105824703SQ201610193108
【公開日】2016年8月3日
【申請(qǐng)日】2016年3月30日
【發(fā)明人】王曉寄
【申請(qǐng)人】聯(lián)想(北京)有限公司