一種多級(jí)別任務(wù)處理方法
【專利摘要】本發(fā)明涉及一種多級(jí)別任務(wù)處理方法,包括建立帶有頭下標(biāo)和尾下標(biāo)的隊(duì)列;將等待分發(fā)的任務(wù)放入隊(duì)列中時(shí),要先判斷隊(duì)列是否已滿,如果已滿則等待,待隊(duì)列中有空位時(shí),向隊(duì)列中放入任務(wù),放任務(wù)時(shí),低優(yōu)先級(jí)任務(wù)放在頭下標(biāo)所指位置,高優(yōu)先級(jí)任務(wù)放在尾下標(biāo)所指位置,從隊(duì)列中取出任務(wù)時(shí),從尾下標(biāo)所指位置取出任務(wù)進(jìn)行處理;其中,向隊(duì)列中放入任務(wù)與從隊(duì)列中取出任務(wù)是異步進(jìn)行的,尤其是在向尾下標(biāo)放任務(wù)時(shí),要將隊(duì)列加上等待鎖,防止在向尾下標(biāo)所指位置放高優(yōu)先級(jí)任務(wù)時(shí),同時(shí)發(fā)生從尾下標(biāo)所指位置取任務(wù)的現(xiàn)象;本發(fā)明所述方法針對(duì)不同級(jí)別的任務(wù)進(jìn)行處理,保證了不同級(jí)別任務(wù)所需的響應(yīng)速度。
【專利說明】 一種多級(jí)別任務(wù)處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電信領(lǐng)域,尤其涉及一種多級(jí)別任務(wù)處理方法。
【背景技術(shù)】
[0002]BOSS系統(tǒng)中存在多種任務(wù)觸發(fā)方式:文件方式,工單方式,實(shí)時(shí)消息方式,不同觸發(fā)在響應(yīng)速度上有不同的要求。
[0003]電信在線系統(tǒng),要求一套系統(tǒng)能同時(shí)處理三種任務(wù)(文件、工單、消息),但這三種任務(wù)要求的響應(yīng)處理效率不同,如消息類要求實(shí)時(shí)響應(yīng),返回處理結(jié)果。
[0004]然而現(xiàn)有的任務(wù)處理方法,難以做到針對(duì)不同級(jí)別的任務(wù)進(jìn)行分別處理,進(jìn)而實(shí)現(xiàn)不同的響應(yīng)速度。
[0005]因此,需要研發(fā)一種針對(duì)不同級(jí)別的任務(wù)有不同響應(yīng)速度的處理方法。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)的不足,提供一種多級(jí)別任務(wù)處理方法,保證不同級(jí)別的任務(wù)有不同的響應(yīng)速度。
[0007]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種多級(jí)別任務(wù)處理方法,包括如下步驟:
[0008]步驟1:建立帶有頭下標(biāo)和尾下標(biāo)的隊(duì)列;
[0009]步驟2:獲取等待分發(fā)的任務(wù);
[0010]步驟3:判斷隊(duì)列是否已滿,如果已滿則等待,待隊(duì)列中有空位時(shí),執(zhí)行步驟4 ;如果未滿則直接執(zhí)行步驟4 ;
[0011]步驟4:判斷待分發(fā)任務(wù)的級(jí)別,如果是低優(yōu)先級(jí)任務(wù)執(zhí)行步驟5 ;如果高優(yōu)先級(jí)任務(wù)則執(zhí)行步驟6 ;
[0012]步驟5:頭下標(biāo)朝隊(duì)列入口方向移動(dòng)一個(gè)位置,將所述低優(yōu)先級(jí)任務(wù)放置在頭下標(biāo)所指位置,執(zhí)行步驟7;
[0013]步驟6:尾下標(biāo)朝隊(duì)列出口 口方向移動(dòng)一個(gè)位置,將所述高優(yōu)先級(jí)任務(wù)放置在尾下標(biāo)所指位置,執(zhí)行步驟7;
[0014]步驟7:處理任務(wù)時(shí),取出尾下標(biāo)所指位置內(nèi)存放的任務(wù),將尾下標(biāo)朝隊(duì)列入口方向移動(dòng)一個(gè)位置,執(zhí)行步驟8;
[0015]步驟8:判斷是否仍有待分發(fā)的任務(wù),如果有,返回步驟2,否則待隊(duì)列中任務(wù)均處
理完畢,結(jié)束。
[0016]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0017]進(jìn)一步,步驟2中所述待分發(fā)的任務(wù)都預(yù)先根據(jù)任務(wù)類型及其所需的響應(yīng)速度,為每個(gè)待分發(fā)的任務(wù)標(biāo)定優(yōu)先級(jí)。
[0018]進(jìn)一步,步驟5、6中向隊(duì)列里放任務(wù)與步驟7中從隊(duì)列中取任務(wù)是異步處理的。
[0019]進(jìn)一步,步驟5中將所述低優(yōu)先級(jí)任務(wù)放入隊(duì)列的具體步驟如下:[0020]步驟5.1:判斷隊(duì)列是否有等待鎖,如果有則等待,等到等待鎖釋放后執(zhí)行步驟
5.2 ;否則直接執(zhí)行步驟5.2 ;
[0021]步驟5.2:判斷隊(duì)列中是否有互斥鎖,如果有則等待,等互斥鎖釋放,在頭下標(biāo)所指位置加互斥鎖;如果沒有則直接在頭下標(biāo)所指位置加互斥鎖;
[0022]步驟5.3:將低優(yōu)先級(jí)任務(wù)放入頭下標(biāo)所指位置;
[0023]步驟5.4:解除互斥鎖。
[0024]進(jìn)一步,步驟6中將高優(yōu)先級(jí)任務(wù)放入隊(duì)列的具體步驟如下:
[0025]步驟6.1:判斷隊(duì)列是否有等待鎖,如果有則等待,等到等待鎖釋放后,再在隊(duì)列上加上等待鎖,執(zhí)行步驟6.2 ;否則直接在隊(duì)列上加上等待鎖,執(zhí)行步驟6.2 ;
[0026]步驟6.2:判斷隊(duì)列中是否有互斥鎖,如果有則等待互斥鎖釋放后,在尾下標(biāo)所指位置加互斥鎖,如果沒有則直接在尾下標(biāo)所指位置加互斥鎖;
[0027]步驟6.3:將高優(yōu)先級(jí)任務(wù)放入尾下標(biāo)所指位置;
[0028]步驟6.4:解除互斥鎖和等待鎖。
[0029]進(jìn)一步,步驟7中取出尾下標(biāo)所指隊(duì)列位置內(nèi)存放的任務(wù)的具體步驟如下:
[0030]步驟7.1:判斷隊(duì)列是否有等待鎖,如果有則等待,等到等待鎖釋放后執(zhí)行步驟7.2 ;否則直接執(zhí)行步驟7.2 ;
[0031]步驟7.2::判斷隊(duì)列中是否有互斥鎖,如果有則等待,等待互斥鎖釋放后,在尾下標(biāo)所指位置加互斥鎖,如果沒有則直接在尾下標(biāo)所指位置加互斥鎖;
[0032]步驟7.3:從尾下標(biāo)所指位置取出所存儲(chǔ)的任務(wù);
[0033]步驟7.4:釋放互斥鎖。
[0034] 本發(fā)明的有益效果是:滿足不同級(jí)別任務(wù)的不同響應(yīng)速度,針對(duì)不同級(jí)別的任務(wù),用尾下標(biāo)標(biāo)示隊(duì)列中的高優(yōu)先級(jí)任務(wù),頭下標(biāo)標(biāo)示隊(duì)列中低優(yōu)先級(jí)任務(wù),獲取任務(wù)進(jìn)行處理時(shí),都是從尾下標(biāo)所指位置取出的,這就保證了高優(yōu)先級(jí)任務(wù)優(yōu)先處理,保證了其響應(yīng)速度。
【專利附圖】
【附圖說明】
[0035]圖1為本發(fā)明所述一種多級(jí)別任務(wù)處理流程圖;
[0036]圖2為本發(fā)明所述步驟5的流程圖;
[0037]圖3為本發(fā)明所述步驟6的流程圖;
[0038]圖4為本發(fā)明所述步驟7的流程圖。
【具體實(shí)施方式】
[0039]以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0040]如圖1所示,一種多級(jí)別任務(wù)處理方法,包括如下步驟:
[0041]步驟1:建立帶有頭下標(biāo)和尾下標(biāo)的隊(duì)列;
[0042]步驟2:獲取等待分發(fā)的任務(wù);
[0043]步驟3:判斷隊(duì)列是否已滿,如果已滿則等待,待隊(duì)列中有空位時(shí),執(zhí)行步驟4 ;如果未滿則直接執(zhí)行步驟4 ;[0044]步驟4:判斷待分發(fā)任務(wù)的級(jí)別,如果是低優(yōu)先級(jí)任務(wù)執(zhí)行步驟5 ;如果高優(yōu)先級(jí)任務(wù)則執(zhí)行步驟6 ;
[0045]步驟5:頭下標(biāo)朝隊(duì)列入口方向移動(dòng)一個(gè)位置,將所述低優(yōu)先級(jí)任務(wù)放置在頭下標(biāo)所指位置,執(zhí)行步驟7;
[0046]步驟6:尾下標(biāo)朝隊(duì)列出口口方向移動(dòng)一個(gè)位置,將所述高優(yōu)先級(jí)任務(wù)放置在尾下標(biāo)所指位置,執(zhí)行步驟7;
[0047]步驟7:處理任務(wù)時(shí),取出尾下標(biāo)所指位置內(nèi)存放的任務(wù),將尾下標(biāo)朝隊(duì)列入口方向移動(dòng)一個(gè)位置,執(zhí)行步驟8;
[0048]步驟8:判斷是否仍有待分發(fā)的任務(wù),如果有,返回步驟2,否則待隊(duì)列中任務(wù)均處
理完畢,結(jié)束。
[0049]其中,步驟2中所述待分發(fā)的任務(wù)都預(yù)先根據(jù)任務(wù)類型及其所需的響應(yīng)速度,為每個(gè)待分發(fā)的任務(wù)標(biāo)定優(yōu)先級(jí)。
[0050]其中,步驟5、6中向隊(duì)列里放任務(wù)與步驟7中從隊(duì)列中取任務(wù)是異步處理的。
[0051]如圖2所示,步驟5中將所述低優(yōu)先級(jí)任務(wù)放入隊(duì)列的具體步驟如下:
[0052]步驟5.1:判斷隊(duì)列是否有等待鎖,如果有則等待,等到等待鎖釋放后執(zhí)行步驟
5.2 ;否則直接執(zhí)行步驟5.2 ;
[0053]步驟5.2:判斷隊(duì) 列中是否有互斥鎖,如果有則等待,等互斥鎖釋放,在頭下標(biāo)所指位置加互斥鎖;如果沒有則直接在頭下標(biāo)所指位置加互斥鎖;
[0054]步驟5.3:將低優(yōu)先級(jí)任務(wù)放入頭下標(biāo)所指位置;
[0055]步驟5.4:解除互斥鎖。
[0056]如圖3所示,步驟6中將高優(yōu)先級(jí)任務(wù)放入隊(duì)列的具體步驟如下:
[0057]步驟6.1:判斷隊(duì)列是否有等待鎖,如果有則等待,等到等待鎖釋放后,再在隊(duì)列上加上等待鎖,執(zhí)行步驟6.2 ;否則直接在隊(duì)列上加上等待鎖,執(zhí)行步驟6.2 ;
[0058]步驟6.2:判斷隊(duì)列中是否有互斥鎖,如果有則等待互斥鎖釋放后,在尾下標(biāo)所指位置加互斥鎖,如果沒有則直接在尾下標(biāo)所指位置加互斥鎖;
[0059]步驟6.3:將高優(yōu)先級(jí)任務(wù)放入尾下標(biāo)所指位置;
[0060]步驟6.4:解除互斥鎖和等待鎖。
[0061]如圖4所示,步驟7中取出尾下標(biāo)所指隊(duì)列位置內(nèi)存放的任務(wù)的具體步驟如下:
[0062]步驟7.1:判斷隊(duì)列是否有等待鎖,如果有則等待,等到等待鎖釋放后執(zhí)行步驟
7.2 ;否則直接執(zhí)行步驟7.2 ;
[0063]步驟7.2::判斷隊(duì)列中是否有互斥鎖,如果有則等待,等待互斥鎖釋放后,在尾下標(biāo)所指位置加互斥鎖,如果沒有則直接在尾下標(biāo)所指位置加互斥鎖;
[0064]步驟7.3:從尾下標(biāo)所指位置取出所存儲(chǔ)的任務(wù);
[0065]步驟7.4:釋放互斥鎖。
[0066]綜上可知,只在向尾下標(biāo)所指位置放任務(wù)時(shí)要將隊(duì)列加上等待鎖,這樣可以在有高優(yōu)先級(jí)任務(wù)要往隊(duì)列放時(shí),暫停取任務(wù)、放低優(yōu)先級(jí)任務(wù)的操作,保證高優(yōu)先級(jí)任務(wù)優(yōu)先放隊(duì)列。
[0067]等待鎖,保證高優(yōu)先級(jí)任務(wù)先放到任務(wù)隊(duì)列;互斥鎖,避免放任務(wù)、取任務(wù)同時(shí)操作隊(duì)列的同一個(gè)位置。[0068]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種多級(jí)別任務(wù)處理方法,其特征在于,包括如下步驟: 步驟1:建立帶有頭下標(biāo)和尾下標(biāo)的隊(duì)列; 步驟2:獲取等待分發(fā)的任務(wù); 步驟3:判斷隊(duì)列是否已滿,如果已滿則等待,待隊(duì)列中有空位時(shí),執(zhí)行步驟4 ;如果未滿則直接執(zhí)行步驟4 ; 步驟4:判斷待分發(fā)任務(wù)的級(jí)別,如果是低優(yōu)先級(jí)任務(wù)執(zhí)行步驟5 ;如果高優(yōu)先級(jí)任務(wù)則執(zhí)行步驟6 ; 步驟5:頭下標(biāo)朝隊(duì)列入口方向移動(dòng)一個(gè)位置,將所述低優(yōu)先級(jí)任務(wù)放置在頭下標(biāo)所指位置,執(zhí)行步驟7; 步驟6:尾下標(biāo)朝隊(duì)列出口口方向移動(dòng)一個(gè)位置,將所述高優(yōu)先級(jí)任務(wù)放置在尾下標(biāo)所指位置,執(zhí)行步驟7; 步驟7:處理任務(wù)時(shí),取出尾下標(biāo)所指位置內(nèi)存放的任務(wù),將尾下標(biāo)朝隊(duì)列入口方向移動(dòng)一個(gè)位置,執(zhí)行步驟8; 步驟8:判斷是否仍有待分發(fā)的任務(wù),如果有,返回步驟2,否則待隊(duì)列中任務(wù)均處理完畢,結(jié)束。
2.根據(jù)權(quán)利要求1所述一種多級(jí)別任務(wù)處理方法,其特征在于,步驟2中所述待分發(fā)的任務(wù)都預(yù)先根據(jù)任務(wù)類型及其所需的響應(yīng)速度,為每個(gè)待分發(fā)的任務(wù)標(biāo)定優(yōu)先級(jí)。
3.根據(jù)權(quán)利要求1所述一.種多級(jí)別任務(wù)處理方法,其特征在于,步驟5、6中向隊(duì)列里放任務(wù)與步驟7中從隊(duì)列中取任務(wù)是異步處理的。
4.根據(jù)權(quán)利要求1所述一種多級(jí)別任務(wù)處理方法,其特征在于,步驟5中將所述低優(yōu)先級(jí)任務(wù)放入隊(duì)列的具體步驟如下: 步驟5.1:判斷隊(duì)列是否有等待鎖,如果有則等待,等到等待鎖釋放后執(zhí)行步驟5.2 ;否則直接執(zhí)行步驟5.2 ; 步驟5.2:判斷隊(duì)列中是否有互斥鎖,如果有則等待,等互斥鎖釋放,在頭下標(biāo)所指位置加互斥鎖;如果沒有則直接在頭下標(biāo)所指位置加互斥鎖; 步驟5.3:將低優(yōu)先級(jí)任務(wù)放入頭下標(biāo)所指位置; 步驟5.4:解除互斥鎖。
5.根據(jù)權(quán)利要求1所述一種多級(jí)別任務(wù)處理方法,其特征在于,步驟6中將高優(yōu)先級(jí)任務(wù)放入隊(duì)列的具體步驟如下: 步驟6.1:判斷隊(duì)列是否有等待鎖,如果有則等待,等到等待鎖釋放后,再在隊(duì)列上加上等待鎖,執(zhí)行步驟6.2 ;否則直接在隊(duì)列上加上等待鎖,執(zhí)行步驟6.2 ; 步驟6.2:判斷隊(duì)列中是否有互斥鎖,如果有則等待互斥鎖釋放后,在尾下標(biāo)所指位置加互斥鎖,如果沒有則直接在尾下標(biāo)所指位置加互斥鎖; 步驟6.3:將高優(yōu)先級(jí)任務(wù)放入尾下標(biāo)所指位置; 步驟6.4:解除互斥鎖和等待鎖。
6.根據(jù)權(quán)利要求1所述一種多級(jí)別任務(wù)處理方法,其特征在于,步驟7中取出尾下標(biāo)所指隊(duì)列位置內(nèi)存放的任務(wù)的具體步驟如下: 步驟7.1:判斷隊(duì)列是否有等待鎖,如果有則等待,等到等待鎖釋放后執(zhí)行步驟7.2 ;否則直接執(zhí)行步驟7.2 ;步驟7.2::判斷隊(duì)列中是否有互斥鎖,如果有則等待,等待互斥鎖釋放后,在尾下標(biāo)所指位置加互斥鎖,如果沒有則直接在尾下標(biāo)所指位置加互斥鎖; 步驟7.3:從尾下標(biāo)所指位置取出所存儲(chǔ)的任務(wù); 步驟7.4:釋放互 斥鎖。
【文檔編號(hào)】G06F9/46GK103473126SQ201310407686
【公開日】2013年12月25日 申請(qǐng)日期:2013年9月9日 優(yōu)先權(quán)日:2013年9月9日
【發(fā)明者】周偉 申請(qǐng)人:北京思特奇信息技術(shù)股份有限公司