基于多隊列的定時時間分解處理的定時器實現方法
【專利摘要】本發明涉及一種基于多隊列的定時時間分解處理的定時器實現方法,包括以下步驟:1)定時器注冊:11)判斷是否存在空閑定時器資源,若為是,執行步驟12),否則結束;12)將定時時間分別掛到對應的時間隊列上;2)定時器超時掃描:根據時間隊列順序依次消耗定時時間。與現有技術相比,本發明具有采用多隊列將定時時間分解處理,提高了多個定時掃描周期后準確性等優點。
【專利說明】基于多隊列的定時時間分解處理的定時器實現方法
【技術領域】
[0001]本發明涉及一種定時器實現方法,尤其是涉及一種基于多隊列的定時時間分解處理的定時器實現方法。
【背景技術】
[0002]用于實現不同的時間相關的功能的控制部件被稱作定時器(Timer)。定時器模塊或定時器部件通常包括一個或多個不同的定時器,這些定時器能夠彼此獨立地運行。可能的使用領域是脈沖發生器、時鐘發生器、用于時間測量的單元和用于事件計數器的參考定時器。定時器原則上可以用軟件或硬件來實現。進程中多個定時任務的實現,通常采用多個定時器來實現,多個定時掃描周期后存在時間準確性差等問題。
【發明內容】
[0003]本發明的目的就是為了克服上述現有技術存在的缺陷而提供一種基于多隊列的定時時間分解處理的定時器實現方法。
[0004]本發明的目的可以通過以下技術方案來實現:
[0005]一種基于多隊列的定時時間分解處理的定時器實現方法,其特征在于,包括以下步驟:
[0006]I)定時器注冊:
[0007]11)判斷是否存在空閑定時器資源,若為是,執行步驟12),否則結束;
[0008]12)將定時時間分別掛到對應的時間隊列上;
[0009]2)定時器超時掃描:根據時間隊列順序依次消耗定時時間。
[0010]所述的定時器的屬性包括:
[0011]使用標記Use;
[0012]是否到時Arrived ;
[0013]定時器當前所在的時間隊列Que ;
[0014]定時器時長CountlOOms ;
[0015]定時器在時間隊列中的剩余時長Rest ;
[0016]定時器所在的10s—90s的隊列QuelOs ;
[0017]定時器所在的100s—900s的隊列QuelOOs ;
[0018]前面一個定時器Prev ;
[0019]后面一個定時器Next。
[0020]所述的時間隊列的屬性包括;
[0021]定時值CountlOOms ;
[0022]剩余時長Rest ;
[0023]定時器數目Count;
[0024]定時器頭指針Head ;[0025]定時器尾指針Tail。
[0026]所述的時間隊列為31隊列,其中:
[0027]隊列O:保留;
[0028]隊列I?9:分別是I到9秒的時間隊列;
[0029]隊列10:保留;
[0030]隊列11?19:分別是IOs到90s的時間隊列;
[0031]隊列20:保留;
[0032]隊列21?29:分是IOOs到900s的時間隊列;
[0033]隊列30:保留。
[0034]與現有技術相比,本發明采用多隊列將定時時間分解處理,提高了多個定時掃描周期后準確性,該技術靈活性高,可對定時器的屬性進行擴展來達到靈活使用的目的。
【專利附圖】
【附圖說明】
[0035]圖1為本發明定時器注冊流程圖;
[0036]圖2為本發明定時器超時掃描流程圖。
【具體實施方式】
[0037]下面結合附圖和具體實施例對本發明進行詳細說明。
[0038]實施例
[0039]以IOOms精度的定時為例,對本發明進行舉例說明:
[0040]如圖1和圖2所示,一種基于多隊列的定時時間分解處理的定時器實現方法,包括以下步驟:
[0041]I)定時器注冊:
[0042]11)判斷是否存在空閑定時器資源,若為是,執行步驟12),否則結束;
[0043]12)將定時時間分別掛到對應的時間隊列上,以123s為例,定時器初始化時會分配到3個定時器時間隊列上,隊列3剩余時間30 (單位100ms),隊列12剩余時間為200 (單位100ms),隊列21剩余時間為1000(單位100ms),且當前的隊列為隊列3 ;
[0044]2)定時器超時掃描:根據時間隊列順序依次消耗定時時間,以定時器注冊流程的123秒定時器說明,隊列3上時間耗完后就將當前隊列設為隊列12,隊列12上時間耗完后就將當前隊列設為隊列21,隊列21上時間耗完后就定時器超時。
[0045]所述的定時器的屬性包括:
[0046]使用標記Use;
[0047]是否到時Arrived ;
[0048]定時器當前所在的時間隊列Que ;
[0049]定時器時長CountlOOms:
[0050]定時器在時間隊列中的剩余時長Rest ;
[0051]定時器所在的10s—90s的隊列QuelOs ;
[0052]定時器所在的100s—900s的隊列QuelOOs ;
[0053]前面一個定時器Prev;[0054]后面一個定時器Next。
[0055]所述的時間隊列的屬性包括:
[0056]定時值CountlOOms ;
[0057]剩余時長Rest ;
[0058]定時器數目Count ;
[0059]定時器頭指針Head ;
[0060]定時器尾指針Tail。
[0061]所述的時間隊列為31隊列,其中:
[0062]隊列O:保留;
[0063]隊列I?9:分別是I到9秒的時間隊列;
[0064]隊列10:保留;
[0065]隊列11?19:分別是IOs到90s的時間隊列;
[0066]隊列20:保留;
[0067]隊列21?29:分是IOOs到900s的時間隊列;
[0068]隊列30:保留。
【權利要求】
1.一種基于多隊列的定時時間分解處理的定時器實現方法,其特征在于,包括以下步驟: 1)定時器注冊: 11)判斷是否存在空閑定時器資源,若為是,執行步驟12),否則結束; 12)將定時時間分別掛到對應的時間隊列上; 2)定時器超時掃描:根據時間隊列順序依次消耗定時時間。
2.根據權利要求1所述的一種基于多隊列的定時時間分解處理的定時器實現方法,其特征在于,所述的定時器的屬性包括: 使用標記Use ; 是否到時Arrived ; 定時器當前所在的時間隊列Que ; 定時器時長CountlOOms: 定時器在時間隊列中的剩余時長Rest 定時器所在的IOs—90s的隊列QuelOs ; 定時器所在的100s—900s的隊列QuelOOs ; 前面一個定時器Prev: 后面一個定時器Next。
3.根據權利要求2所述的一種基于多隊列的定時時間分解處理的定時器實現方法,其特征在于,所述的時間隊列的屬性包括: 定時值 CountlOOms ; 剩余時長Rest ; 定時器數目Count ; 定時器頭指針Head ; 定時器尾指針Tail。
4.根據權利要求3所述的一種基于多隊列的定時時間分解處理的定時器實現方法,其特征在于,所述的時間隊列為31隊列,其中: 隊列O:保留; 隊列I?9:分別是I到9秒的時間隊列; 隊列10:保留; 隊列11?19:分別是IOs到90s的時間隊列; 隊列20:保留; 隊列21?29:分是IOOs到900s的時間隊列; 隊列30:保留。
【文檔編號】G06F9/46GK103617072SQ201310504642
【公開日】2014年3月5日 申請日期:2013年10月23日 優先權日:2013年10月23日
【發明者】管文新 申請人:上海寰創通信科技股份有限公司