專利名稱:對(duì)定時(shí)器任務(wù)進(jìn)行管理的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊領(lǐng)域,尤其涉及一種對(duì)Timer(定時(shí)器)任務(wù)進(jìn)行管理的方法。
背景技術(shù):
在一些大規(guī)模需要Timer任務(wù)的系統(tǒng),比如,iSAP server(IntegratedService Application Platform server,一個(gè)電信級(jí)的聯(lián)合應(yīng)用/服務(wù)平臺(tái))中,需要?jiǎng)?chuàng)建大量的Timer任務(wù),用來進(jìn)行定時(shí)處理。上述系統(tǒng)對(duì)于Timer實(shí)現(xiàn)往往具有如下兩個(gè)特點(diǎn)1、需要能夠支持大量的Timer任務(wù)。以SIP(Session InitiatedProtocol,起始會(huì)話協(xié)議)應(yīng)用為例,每個(gè)呼叫大約需要10個(gè)以上的Timer任務(wù),因此,整個(gè)系統(tǒng)需要支持的Timer任務(wù)的數(shù)量往往超過10000個(gè),甚至更多,在高載荷的情況下,需要支持超過20000個(gè)的Timer任務(wù)。
2、絕大多數(shù)的Timer任務(wù)要在很短的時(shí)間內(nèi)進(jìn)行觸發(fā)。在典型的SIP應(yīng)用中,超過50%的Timer任務(wù)觸發(fā)周期是500毫秒。同時(shí),絕大多數(shù)的Timer任務(wù)有固定的觸發(fā)周期。例如,以500毫秒為周期的Timer任務(wù)大約占總數(shù)的60%左右,以1秒為周期的Timer任務(wù)大約占總數(shù)的20%,以2秒為周期的大約占總數(shù)的5%,以4秒為周期的大約占總數(shù)的1%。
現(xiàn)有技術(shù)中一種對(duì)Timer任務(wù)進(jìn)行管理的方法為基于平衡堆的Timer任務(wù)管理方法。平衡堆的結(jié)構(gòu)示意圖可參見圖1。該方法在整個(gè)系統(tǒng)中使用一個(gè)任務(wù)隊(duì)列,隊(duì)列根據(jù)任務(wù)的觸發(fā)時(shí)間采用平衡堆進(jìn)行排序,具有很高的排序效率,針對(duì)每次插入和刪除Timer任務(wù)操作的排序復(fù)雜度為log2N(N表示堆中Timer任務(wù)的總數(shù)量)。堆中元素queue[n]的兩個(gè)孩子分別是queue[2*n]和queue[2*n+1]。堆中最小的任務(wù)是queue[1].對(duì)于堆中的每一個(gè)元素結(jié)點(diǎn)n,我們假設(shè)它的孩子是d,那么結(jié)點(diǎn)n的觸發(fā)時(shí)間一定小于或等于孩子d的觸發(fā)時(shí)間。當(dāng)一個(gè)新任務(wù)被插入到這個(gè)堆中時(shí),堆自動(dòng)重排平衡樹確保這個(gè)任務(wù)被放到正確的位置上。當(dāng)一個(gè)任務(wù)被刪除的時(shí)候,平衡樹對(duì)剩下的任務(wù)進(jìn)行重排。
上述對(duì)Timer任務(wù)進(jìn)行管理的方法的缺點(diǎn)為由于整個(gè)系統(tǒng)使用一個(gè)Timer任務(wù)隊(duì)列,各個(gè)Timer任務(wù)的觸發(fā)周期不相同,需要對(duì)Timer任務(wù)排序,排序需要一定的時(shí)間代價(jià)。隨著越來越多的Timer任務(wù)被插入,隊(duì)列的長度會(huì)越來越長。因此,單次插入或刪除Timer任務(wù)操作需要的時(shí)間也相應(yīng)延長,將導(dǎo)致系統(tǒng)性能的不斷下降。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種對(duì)Timer任務(wù)進(jìn)行管理的方法,從而可以減少單次插入或刪除Timer任務(wù)操作需要的時(shí)間,提高Timer任務(wù)的管理效率。
本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的一種對(duì)定時(shí)器任務(wù)進(jìn)行管理的方法,包括步驟A、在系統(tǒng)中創(chuàng)建至少一個(gè)固定周期定時(shí)器任務(wù)隊(duì)列,所述固定周期定時(shí)器任務(wù)隊(duì)列的屬性包括一特定觸發(fā)周期;B、將系統(tǒng)中的定時(shí)器任務(wù)放入與其觸發(fā)周期相同的所述固定周期定時(shí)器任務(wù)隊(duì)列,對(duì)該定時(shí)器任務(wù)進(jìn)行管理。
所述的步驟A具體包括將需要?jiǎng)?chuàng)建的固定周期定時(shí)器任務(wù)隊(duì)列的觸發(fā)周期配置到系統(tǒng)的配置文件中,當(dāng)系統(tǒng)啟動(dòng)時(shí),根據(jù)該配置文件中配置的觸發(fā)周期信息,創(chuàng)建相應(yīng)的固定周期定時(shí)器任務(wù)隊(duì)列。
所述的固定周期定時(shí)器任務(wù)隊(duì)列中的定時(shí)器任務(wù)按照其觸發(fā)時(shí)間進(jìn)行升序排列。
所述的步驟B具體包括將系統(tǒng)中創(chuàng)建的定時(shí)器任務(wù)插入到與其觸發(fā)周期相同的所述固定周期定時(shí)器任務(wù)隊(duì)列的尾部,并對(duì)定時(shí)器任務(wù)進(jìn)行管理。
所述的對(duì)定時(shí)器任務(wù)進(jìn)行管理具體包括當(dāng)所述固定周期定時(shí)器任務(wù)隊(duì)列的隊(duì)首的定時(shí)器任務(wù)的觸發(fā)時(shí)間到達(dá)時(shí),執(zhí)行該定時(shí)器任務(wù),然后,將該定時(shí)器任務(wù)從該固定周期定時(shí)器任務(wù)隊(duì)列的隊(duì)首刪除。
所述的對(duì)定時(shí)器任務(wù)進(jìn)行管理還包括當(dāng)所述固定周期定時(shí)器任務(wù)隊(duì)列中的定時(shí)器任務(wù)被取消時(shí),將該定時(shí)器任務(wù)從所述固定周期定時(shí)器任務(wù)隊(duì)列中刪除。
所述的固定周期定時(shí)器任務(wù)隊(duì)列采用雙向鏈表實(shí)現(xiàn)。
還包括步驟C、在系統(tǒng)中創(chuàng)建普通定時(shí)器任務(wù)隊(duì)列;D、將沒有與所述固定周期定時(shí)器隊(duì)列的觸發(fā)周期相同的定時(shí)器任務(wù)放入所述普通定時(shí)器任務(wù)隊(duì)列進(jìn)行管理。
所述普通定時(shí)器任務(wù)隊(duì)列采用平衡堆實(shí)現(xiàn)。
所述的系統(tǒng)為基于起始會(huì)話協(xié)議SIP的電信應(yīng)用系統(tǒng)。
由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明通過在系統(tǒng)中創(chuàng)建固定周期定時(shí)器隊(duì)列對(duì)相應(yīng)的定時(shí)器任務(wù)進(jìn)行管理,由于一個(gè)固定周期定時(shí)器隊(duì)列中所有定時(shí)器任務(wù)的觸發(fā)周期相同,不需要對(duì)隊(duì)列中的定時(shí)器任務(wù)進(jìn)行復(fù)雜的排序操作,大大簡化了插入或刪除定時(shí)器任務(wù)的操作過程,提高了定時(shí)器任務(wù)的管理效率。
另外通過將定時(shí)器任務(wù)放到相應(yīng)的固定周期定時(shí)器隊(duì)列中管理,可以減少普通定時(shí)器任務(wù)隊(duì)列的長度,提高了普通定時(shí)器任務(wù)隊(duì)列的管理效率。
在本發(fā)明中,還可以根據(jù)系統(tǒng)的定時(shí)器任務(wù)的觸發(fā)周期特點(diǎn),在系統(tǒng)中合理地同時(shí)創(chuàng)建一定數(shù)量的固定周期定時(shí)器隊(duì)列和一個(gè)普通定時(shí)器任務(wù)隊(duì)列,從而極大地提高了具有特定觸發(fā)周期的定時(shí)器任務(wù)的管理效率,并大大減少了普通定時(shí)器任務(wù)隊(duì)列的長度,降低系統(tǒng)受總負(fù)荷影響的程度,為整個(gè)系統(tǒng)提供較好的性能。
圖1為現(xiàn)有技術(shù)的平衡堆結(jié)構(gòu)示意圖;圖2為本發(fā)明所述方法的實(shí)施例1的處理流程圖;圖3為基于雙向鏈表的固定周期定時(shí)器任務(wù)隊(duì)列的結(jié)構(gòu)示意圖;圖4為基于雙向鏈表的固定周期定時(shí)器任務(wù)隊(duì)列的三種基本操作示意圖;圖5為本發(fā)明所述方法的實(shí)施例2的處理流程圖。
具體實(shí)施例方式
本發(fā)明提供了一種對(duì)Timer任務(wù)進(jìn)行管理的方法,本發(fā)明的核心為在系統(tǒng)中創(chuàng)建一個(gè)或多個(gè)固定周期定時(shí)器任務(wù)隊(duì)列,利用該固定周期定時(shí)器任務(wù)隊(duì)列對(duì)系統(tǒng)中具有特定觸發(fā)周期的定時(shí)器任務(wù)進(jìn)行管理。
下面結(jié)合附圖來詳細(xì)描述本發(fā)明。
本發(fā)明所述方法的實(shí)施例1的處理流程如圖2所示,包括如下步驟步驟2-1、在系統(tǒng)中創(chuàng)建至少一個(gè)固定周期定時(shí)器任務(wù)隊(duì)列。
Timer任務(wù)由Timer線程進(jìn)行觸發(fā),下面先介紹Timer線程的作用。
Timer任務(wù)的實(shí)現(xiàn)是基于Timer任務(wù)隊(duì)列。系統(tǒng)為每一個(gè)Timer任務(wù)隊(duì)列分配一個(gè)Timer線程,該線程負(fù)責(zé)調(diào)度Timer任務(wù)隊(duì)列中的任務(wù)。如果Timer線程發(fā)現(xiàn)隊(duì)列中有Timer任務(wù),那么,它就把最近需要觸發(fā)的Timer任務(wù)拿出來,然后作如下檢查1、如果Timer任務(wù)的觸發(fā)時(shí)間是小于或等于當(dāng)前時(shí)間,則馬上觸發(fā)這個(gè)Timer任務(wù)。
2、如果Timer任務(wù)的觸發(fā)時(shí)間是大于當(dāng)前時(shí)間,則該線程就會(huì)等待相應(yīng)的時(shí)間差值(觸發(fā)時(shí)間-當(dāng)前時(shí)間)后,再觸發(fā)這個(gè)Timer任務(wù)。
在正在等待的時(shí)間中,如果有新的Timer任務(wù)被插入,Timer線程會(huì)得到通知,于是,Timer線程會(huì)被喚醒,并重新在隊(duì)列中取出觸發(fā)時(shí)間最近的Timer任務(wù),繼續(xù)等待或者觸發(fā)(依賴于該Timer的觸發(fā)時(shí)間)。之所以要重新取出Timer任務(wù),是因?yàn)閯偙徊迦氲腡imer任務(wù)可能具有更小的觸發(fā)周期。當(dāng)然,基于固定周期定時(shí)器任務(wù)隊(duì)列的Timer線程可不需要執(zhí)行該操作,因?yàn)樾聞?chuàng)建的固定周期定時(shí)器任務(wù)隊(duì)列的Timer任務(wù)觸發(fā)時(shí)間肯定晚于原有的Timer任務(wù),除非原來隊(duì)列中沒有Timer任務(wù)。
本發(fā)明首先基于Timer任務(wù)的觸發(fā)周期對(duì)系統(tǒng)中的Timer任務(wù)進(jìn)行分類。通過對(duì)系統(tǒng)中的Timer任務(wù)進(jìn)行分類,一旦發(fā)現(xiàn)系統(tǒng)中有大量的具有相同觸發(fā)周期的Timer任務(wù),便將這個(gè)觸發(fā)周期配置成固定周期。
然后,在系統(tǒng)中創(chuàng)建所述固定周期對(duì)應(yīng)的周期定時(shí)器任務(wù)隊(duì)列,并分配給該周期定時(shí)器任務(wù)隊(duì)列一個(gè)線程,在系統(tǒng)中可以創(chuàng)建多個(gè)固定周期定時(shí)器任務(wù)隊(duì)列。例如,系統(tǒng)中可以創(chuàng)建兩個(gè)固定周期定時(shí)器任務(wù)隊(duì)列,一個(gè)觸發(fā)周期為500毫秒的,一個(gè)觸發(fā)周期為1秒的。
在實(shí)際應(yīng)用中,也可以將固定周期定時(shí)器任務(wù)隊(duì)列的觸發(fā)周期配置到系統(tǒng)的xml(可擴(kuò)展標(biāo)記語言)配置文件中,當(dāng)系統(tǒng)啟動(dòng)時(shí),系統(tǒng)便會(huì)根據(jù)xml配置文件中的配置的觸發(fā)周期信息,創(chuàng)建對(duì)應(yīng)的固定周期定時(shí)器任務(wù)隊(duì)列。
固定周期定時(shí)器任務(wù)隊(duì)列中的定時(shí)器任務(wù)是按照其觸發(fā)時(shí)間來進(jìn)行升序排列的,隊(duì)列中的任務(wù)根據(jù)其觸發(fā)時(shí)間自動(dòng)獲得排序。固定周期定時(shí)器任務(wù)隊(duì)列可以通過一個(gè)雙向鏈表來實(shí)現(xiàn),其結(jié)構(gòu)示意圖可參見圖3。
步驟2-2、將定時(shí)器任務(wù)放入與其觸發(fā)周期相同的固定周期定時(shí)器任務(wù)隊(duì)列進(jìn)行管理。
在本實(shí)例中,當(dāng)系統(tǒng)中一個(gè)Timer任務(wù)被創(chuàng)建時(shí),系統(tǒng)中的Timer Facility(定時(shí)器設(shè)備)首先根據(jù)該任務(wù)的觸發(fā)周期,確定該Timer任務(wù)應(yīng)該放入哪個(gè)隊(duì)列中。如果系統(tǒng)已經(jīng)為該任務(wù)的觸發(fā)周期分配了相應(yīng)的固定周期定時(shí)器任務(wù)隊(duì)列,則將該Timer任務(wù)插到對(duì)應(yīng)的固定周期定時(shí)器任務(wù)隊(duì)列中。
固定周期定時(shí)器任務(wù)隊(duì)列是一個(gè)FIFO(First in,first out,先進(jìn)先出)隊(duì)列,可以通過一個(gè)雙向鏈表來實(shí)現(xiàn),由于雙向鏈表的操作時(shí)間是常數(shù),與隊(duì)列的長度無關(guān),這確保了系統(tǒng)可以支持更多的載荷。如圖4所示,基于雙向鏈表的固定周期定時(shí)器任務(wù)隊(duì)列有三種基本操作1、插入固定周期定時(shí)器任務(wù)隊(duì)列中的Timer任務(wù)都具有相同的觸發(fā)周期,并且是以創(chuàng)建的順序插入的。因此,當(dāng)需要插入一個(gè)新創(chuàng)建的固定周期Timer任務(wù)時(shí),由于它的觸發(fā)時(shí)間一定比前一個(gè)插入的晚,于是,直接將該Timer任務(wù)插入隊(duì)尾即可,不需要再作任何的排序工作,整個(gè)隊(duì)列仍然是按照觸發(fā)時(shí)間升序排列的。
2、刪除當(dāng)一個(gè)Timer任務(wù)被取消時(shí),直接將該Timer任務(wù)從隊(duì)列中刪除即可。和上述插入操作一樣,刪除操作也不需要再作任何的排序工作。
3、觸發(fā)一旦一個(gè)Timer任務(wù)的Timer線程等待完成,就意味這個(gè)Timer任務(wù)需要被觸發(fā)。該Timer線程就會(huì)從線程池中獲取一個(gè)線程來異步執(zhí)行這個(gè)Timer任務(wù)。然后,直接從隊(duì)首將該任務(wù)刪除,Timer線程再從Timer隊(duì)列中獲取下一Timer任務(wù)。
對(duì)于系統(tǒng)中的Timer任務(wù)的觸發(fā)周期不是很多的情況,通過創(chuàng)建有限的相應(yīng)的固定周期定時(shí)器隊(duì)列,即可非常高效地完成Timer任務(wù)的管理。
本發(fā)明所述方法的實(shí)施例2的處理流程如圖5所示,包括如下步驟
步驟5-1、在系統(tǒng)中同時(shí)創(chuàng)建固定周期定時(shí)器任務(wù)隊(duì)列和普通定時(shí)器任務(wù)隊(duì)列。
該實(shí)施例適用于系統(tǒng)中除了具有一定數(shù)量的特定觸發(fā)周期的Timer任務(wù)外,還具有大量的觸發(fā)周期變化范圍較大的Timer任務(wù)的情況。比如大規(guī)模需要Timer任務(wù)的基于SIP的電信應(yīng)用的系統(tǒng)。
在本實(shí)施例中,在系統(tǒng)中除了要?jiǎng)?chuàng)建若干個(gè)實(shí)施例1所述的固定周期定時(shí)器隊(duì)列外,還要?jiǎng)?chuàng)建一個(gè)普通定時(shí)器任務(wù)隊(duì)列,用于管理沒有與固定周期定時(shí)器隊(duì)列的觸發(fā)周期相同的所有的定時(shí)器任務(wù)。
普通定時(shí)器任務(wù)隊(duì)列使用平衡堆來實(shí)現(xiàn),根據(jù)任務(wù)的觸發(fā)時(shí)間進(jìn)行排序,根據(jù)數(shù)字坐標(biāo)來確定隊(duì)列中的元素。普通定時(shí)器任務(wù)隊(duì)列中一個(gè)元素queue[n]的兩個(gè)孩子分別是queue[2*n]和queue[2*n+1],堆中最小的任務(wù)是queue[1],對(duì)于堆中的每一個(gè)元素結(jié)點(diǎn)n,我們假設(shè)它的孩子是d,那么結(jié)點(diǎn)n的觸發(fā)時(shí)間一定小于或等于孩子d的觸發(fā)時(shí)間。
普通定時(shí)器任務(wù)隊(duì)列還可以采用其它方法實(shí)現(xiàn),如用雙用鏈表實(shí)現(xiàn),將鏈表中的Timer任務(wù)按觸發(fā)時(shí)間直接排序。
步驟5-2、將定時(shí)器任務(wù)分別放入固定周期定時(shí)器任務(wù)隊(duì)列和普通定時(shí)器任務(wù)隊(duì)列進(jìn)行管理。
當(dāng)系統(tǒng)中一個(gè)Timer任務(wù)被創(chuàng)建時(shí),如果該Timer任務(wù)的觸發(fā)周期被配置成了固定周期定時(shí)器任務(wù)隊(duì)列,則將該Timer任務(wù)插入到對(duì)應(yīng)的固定周期定時(shí)器任務(wù)隊(duì)列中,按照實(shí)施例1所述的管理方法對(duì)該Timer任務(wù)進(jìn)行管理;否則,將該Timer任務(wù)插入到普通定時(shí)器任務(wù)隊(duì)列中,在普通定時(shí)器任務(wù)隊(duì)列中對(duì)該Timer任務(wù)進(jìn)行管理。
對(duì)于使用平衡堆實(shí)現(xiàn)的普通定時(shí)器任務(wù)隊(duì)列,也有插入、刪除和觸發(fā)三種操作。當(dāng)一個(gè)新Timer任務(wù)被插入到這個(gè)堆中時(shí),堆自動(dòng)重排平衡樹確保這個(gè)任務(wù)被放到正確的位置上。當(dāng)一個(gè)Timer任務(wù)被觸發(fā)后,需要將該Timer任務(wù)刪除。當(dāng)一個(gè)Timer任務(wù)被刪除的時(shí)候,平衡樹對(duì)剩下的Timer任務(wù)進(jìn)行重排,以滿足普通定時(shí)器任務(wù)隊(duì)列的要求。
在該實(shí)施例中,由于有大量的具有特定觸發(fā)周期的Timer任務(wù)從普通定時(shí)器任務(wù)隊(duì)列中分離出來,放到了固定周期定時(shí)器任務(wù)隊(duì)列中,大大縮減了普通定時(shí)器任務(wù)隊(duì)列的長度。因此,普通定時(shí)器任務(wù)隊(duì)列的插入或刪除操作也由于隊(duì)列變短而相應(yīng)地變快,大大減少了普通定時(shí)器任務(wù)隊(duì)列的排序壓力。特別是對(duì)擁有大量相同周期的Timer任務(wù)的系統(tǒng),這種優(yōu)勢(shì)非常明顯。從而為整個(gè)系統(tǒng)提供很好的性能。
比如,采用該實(shí)施例所述方法,通過在iSAP Server中分別創(chuàng)建500毫秒、1秒、2秒、4秒的固定周期定時(shí)器隊(duì)列和一個(gè)采用平衡堆實(shí)現(xiàn)的普通定時(shí)器任務(wù)隊(duì)列,在很高的載荷下,iSAP server能夠支持超過20000個(gè)的Timer任務(wù)。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種對(duì)定時(shí)器任務(wù)進(jìn)行管理的方法,其特征在于,包括步驟A、在系統(tǒng)中創(chuàng)建至少一個(gè)固定周期定時(shí)器任務(wù)隊(duì)列,所述固定周期定時(shí)器任務(wù)隊(duì)列的屬性包括一特定觸發(fā)周期;B、將系統(tǒng)中的定時(shí)器任務(wù)放入與其觸發(fā)周期相同的所述固定周期定時(shí)器任務(wù)隊(duì)列進(jìn)行管理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的步驟A具體包括將需要?jiǎng)?chuàng)建的固定周期定時(shí)器任務(wù)隊(duì)列的觸發(fā)周期配置到系統(tǒng)的配置文件中,當(dāng)系統(tǒng)啟動(dòng)時(shí),根據(jù)該配置文件中配置的觸發(fā)周期信息,創(chuàng)建相應(yīng)的固定周期定時(shí)器任務(wù)隊(duì)列。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的固定周期定時(shí)器任務(wù)隊(duì)列中的定時(shí)器任務(wù)按照其觸發(fā)時(shí)間進(jìn)行升序排列。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的步驟B具體包括將系統(tǒng)中創(chuàng)建的定時(shí)器任務(wù)插入到與其觸發(fā)周期相同的所述固定周期定時(shí)器任務(wù)隊(duì)列的尾部,并對(duì)定時(shí)器任務(wù)進(jìn)行管理。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述的對(duì)定時(shí)器任務(wù)進(jìn)行管理具體包括當(dāng)所述固定周期定時(shí)器任務(wù)隊(duì)列的隊(duì)首的定時(shí)器任務(wù)的觸發(fā)時(shí)間到達(dá)時(shí),執(zhí)行該定時(shí)器任務(wù),然后,將該定時(shí)器任務(wù)從該固定周期定時(shí)器任務(wù)隊(duì)列的隊(duì)首刪除。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述的對(duì)定時(shí)器任務(wù)進(jìn)行管理還包括當(dāng)所述固定周期定時(shí)器任務(wù)隊(duì)列中的定時(shí)器任務(wù)被取消時(shí),將該定時(shí)器任務(wù)從所述固定周期定時(shí)器任務(wù)隊(duì)列中刪除。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的固定周期定時(shí)器任務(wù)隊(duì)列采用雙向鏈表實(shí)現(xiàn)。
8.根據(jù)權(quán)利要求1至7任一項(xiàng)所述的方法,其特征在于,還包括步驟C、在系統(tǒng)中創(chuàng)建普通定時(shí)器任務(wù)隊(duì)列;D、將沒有與所述固定周期定時(shí)器隊(duì)列的觸發(fā)周期相同的定時(shí)器任務(wù)放入所述普通定時(shí)器任務(wù)隊(duì)列進(jìn)行管理。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述普通定時(shí)器任務(wù)隊(duì)列采用平衡堆實(shí)現(xiàn)。
10.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述的系統(tǒng)為基于起始會(huì)話協(xié)議SIP的電信應(yīng)用系統(tǒng)。
全文摘要
本發(fā)明提供了一種對(duì)Timer(定時(shí)器)任務(wù)進(jìn)行管理的方法,該方法主要包括在系統(tǒng)中創(chuàng)建至少一個(gè)固定周期定時(shí)器任務(wù)隊(duì)列,所述固定周期定時(shí)器任務(wù)隊(duì)列的屬性包括一特定觸發(fā)周期;將系統(tǒng)中的定時(shí)器任務(wù)放入與其觸發(fā)周期相同的所述固定周期定時(shí)器任務(wù)隊(duì)列,對(duì)該定時(shí)器任務(wù)進(jìn)行管理。利用本發(fā)明所述方法,可以減少單次插入或刪除Timer任務(wù)操作需要的時(shí)間,提高Timer任務(wù)的管理效率。
文檔編號(hào)H04Q3/00GK1870767SQ20051013053
公開日2006年11月29日 申請(qǐng)日期2005年12月14日 優(yōu)先權(quán)日2005年12月14日
發(fā)明者張民衛(wèi), 伽亞吉 申請(qǐng)人:華為技術(shù)有限公司