專利名稱:一種定時器實現(xiàn)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及定時器設(shè)計技術(shù)領(lǐng)域,特別涉及一種定時器實現(xiàn)方法及裝置。
技術(shù)背景
目前,在嵌入式實時系統(tǒng)開發(fā)中,常用的定時器有輪詢定時器和分類定時器兩種, 下面分別對這兩種定時器進行簡單介紹。圖1給出了現(xiàn)有輪詢定時器的設(shè)計示意圖。如圖1所示,在該輪詢定時器中有一 個定時周期掃描器和一個子定時器隊列,其中,在定時周期掃描器中設(shè)置有掃描時間,子定 時器隊列中有依次排列的T1、T2、T3、T4等多個子定時器,且子定時器隊列中的每一個子定 時器與定時周期掃描器是同時啟動的當(dāng)定時周期掃描器開始掃描時,所有的子定時器開 始進行定時操作。在每個掃描時間到達時,定時周期掃描器都會對子定時器隊列中的每個 子定時器進行掃描,即,將掃描時間與子定時器的定時時間相比較,當(dāng)兩者相等時,則視為 子定時器超時,該子定時器會執(zhí)行相應(yīng)的超時處理,如響鈴等。如果該子定時器為可重置型 定時器,則該子定時器會被重置到子定時器隊列中;如果該子定時器為一次性定時器,則該 子定時器會從子定時器隊列中被刪除。從上述分析可以看出,在輪詢定時器中,當(dāng)在某個掃描時間內(nèi)有多個子定時器同 時超時時,則這多個子定時器需要同時執(zhí)行各自對應(yīng)的超時處理,因此,在某個時刻會造成 中央處理單元(CPU)資源的占用率非常高。然而,在實際應(yīng)用中,系統(tǒng)中的CPU資源是有限 的,當(dāng)某個時刻所需的CPU資源超過了系統(tǒng)中有限的CPU資源時,整個系統(tǒng)會崩潰,從而導(dǎo) 致輪詢定時器定時功能失效,也就限制了輪詢定時器的使用。圖2為現(xiàn)有分類定時器的設(shè)計示意圖。同現(xiàn)有輪詢定時器一樣,在分類定時器中, 也有一個定時周期掃描器,但與輪詢定時器不同的是,在分類定時器中有子定時器隊列1、 子定時器隊列2、子定時器隊列3等多個子定時器隊列,這些不同的子定時器隊列是將所有 的子定時器依據(jù)一定的分類原則而得到的,分類原則不同,得到的子定時器隊列也就不同, 圖2中給出的是按照定時周期的不同來對所有子定時器進行劃分而得到的。在分類定時器 中,定時周期掃描器的掃描過程基本上同輪詢定時器,即,當(dāng)定時周期掃描器開始掃描時, 每個子定時器隊列中的每個子定時器都開始進行定時操作,且在每個掃描時間到達時,定 時周期掃描器都會對每個子定時器隊列中的每個子定時器進行掃描。在采用分類定時器時,當(dāng)在某個掃描時間內(nèi)有多個子定時器同時超時時,也會出 現(xiàn)多個子定時器需要同時執(zhí)行各自的超時處理,而每個子定時器在執(zhí)行超時處理時都會占 用系統(tǒng)的CPU資源,由于系統(tǒng)中的CPU資源是有限的,當(dāng)多個子定時器同時執(zhí)行超時處理所 需的CPU資源超過了系統(tǒng)中有限的CPU資源時,整個系統(tǒng)會出現(xiàn)崩潰的問題。目前,隨著業(yè)務(wù)支撐系統(tǒng)性能差異及業(yè)務(wù)需求不同,在業(yè)務(wù)功能開發(fā)中,常常有多 個不同的子定時器同時執(zhí)行超時處理,而當(dāng)多個子定時器同時執(zhí)行超時處理時,采用現(xiàn)有 的各種定時器都可能會出現(xiàn)CPU資源占用率過高而導(dǎo)致系統(tǒng)崩潰的問題,從而導(dǎo)致不能完 成定時器的定時功能。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種定時器實現(xiàn)方法,能夠在降低CPU資源占用率的情 況下實現(xiàn)定時器的定時功能,而且設(shè)計復(fù)雜度較低。本發(fā)明還提供了一種定時器實現(xiàn)裝置,能夠在降低CPU資源占用率的情況下實現(xiàn) 定時器的定時功能,而且設(shè)計復(fù)雜度較低。為了達到上述目的,本發(fā)明提出的技術(shù)方案為一種定時器實現(xiàn)方法,應(yīng)用于具有多個子定時器的定時器裝置中,該方法包括以 下步驟創(chuàng)建對應(yīng)有各定時時間的定時器超時桶,各定時器超時桶按定時時間由小到大的 順序依次鏈接成一鏈表,所述定時時間為定時周期掃描器的最小掃描時間的整數(shù)倍;若一子定時器的定時周期與一定時器超時桶對應(yīng)有的定時時間相匹配,則將該子定時器鏈接到該定時器超時桶中;當(dāng)定時周期掃描器的掃描時間到達時,定時周期掃描器對定時時間與所述掃描時 間相等的定時器超時桶所鏈接的子定時器進行超時處理。一種定時器實現(xiàn)裝置,該裝置包括創(chuàng)建模塊、選擇模塊和超時處理模塊,其中,所述創(chuàng)建模塊,用于創(chuàng)建對應(yīng)有各定時時間的定時器超時桶,各定時器超時桶按 定時時間由小到大的順序依次鏈接成一鏈表,所述定時時間為定時周期掃描器的最小掃描 時間的整數(shù)倍;所述選擇模塊,用于若一子定時器的定時周期與一定時器超時桶對應(yīng)有的定時時 間相匹配,則將該子定時器鏈接到該定時器超時桶中;所述超時處理模塊,用于當(dāng)定時周期掃描器的掃描時間到達時,對定時時間與所 述掃描時間相等的定時器超時桶所鏈接的子定時器進行超時處理。綜上所述,本發(fā)明所采用的定時器實現(xiàn)方法,通過降低某些子定時器的定時準(zhǔn)確 度,從而避免了某個掃描時間內(nèi)可能會出現(xiàn)多個子定時器同時執(zhí)行超時處理的情況,也就 降低了 CPU的資源占用率,從而能夠?qū)崿F(xiàn)在降低CPU資源占用率的同時實現(xiàn)定時器的定時 功能,并且設(shè)計復(fù)雜度低。
圖1為現(xiàn)有輪詢定時器的設(shè)計示意圖;圖2為現(xiàn)有分類定時器的設(shè)計示意圖;圖3為本發(fā)明所采用的定時器實現(xiàn)裝置的設(shè)計示意圖;圖4為本發(fā)明所采用的定時器實現(xiàn)方法的工作流程圖;圖5為本發(fā)明定時器實現(xiàn)裝置的結(jié)構(gòu)示意圖。
具體實施例方式為了解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明提出了一種全新的定時器實現(xiàn)方法和裝 置,即通過降低某些子定時器的定時準(zhǔn)確度,從而避免了某個掃描時間內(nèi)可能會出現(xiàn)多個 子定時器同時執(zhí)行超時處理的情況,也就降低了 CPU的資源占用率;此外,本發(fā)明還通過減少子定時器的個數(shù)來減少多個子定時器同時執(zhí)行超時處理的可能,進一步地降低了 CPU的 資源占用率;最后,在本發(fā)明所采用的方法中,定時器超時桶是按照定時時間由小到大的順 序依次排列的,在某個掃描時間到達時,定時器周期掃描器僅需掃描定時時間與掃描時間 相等的定時器超時桶中的子定時器即可,而無需在每個掃描時間到達時,定時周期掃描器 對所有的子定時器都要進行掃描,從而也降低了設(shè)計復(fù)雜度。在介紹具體的方案之前,首先介紹一下定時器超時桶和數(shù)據(jù)池的概念。定時器超 時桶是針對具有不同定時時間的子定時器而建立的數(shù)據(jù)結(jié)構(gòu),即,將具有相同定時周期的 子定時器鏈接入一定時器超時桶;多個定時器超時桶可以相互鏈接形成鏈表,即定時器超 時桶鏈表。在誤差允許的范圍內(nèi),鏈接于同一定時器超時桶的子定時器的定時周期是相等 的,當(dāng)定時時間為定時周期掃描器的掃描時間時,其鏈 接的多個子定時器會執(zhí)行各自的超 時處理;數(shù)據(jù)池是一子定時器可允許配置的定時周期的集合,且數(shù)據(jù)池的個數(shù)是與所有定 時器超時桶中的子定時器的個數(shù)一一對應(yīng)的?;谏鲜鼋榻B,本發(fā)明所述方案的具體實現(xiàn)包括創(chuàng)建對應(yīng)有各定時時間的定時器超時桶,各定時器超時桶按定時時間由小到大的 順序依次鏈接成一鏈表,所述定時時間為定時周期掃描器的最小掃描時間的整數(shù)倍;若一子定時器的定時周期與一定時器超時桶對應(yīng)有的定時時間相匹配,則將該子 定時器鏈接到該定時器超時桶中;當(dāng)定時周期掃描器的掃描時間到達時,定時周期掃描器對定時時間與所述掃描時 間相等的定時器超時桶所鏈接的子定時器進行超時處理。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體實施例對 本發(fā)明作進一步地詳細描述。參見圖3所述的定時器實現(xiàn)裝置的設(shè)計示意圖。如圖3所示,該定時器裝置包括 定時周期掃描器和Bctl、Bct2、BCt3、BCt4和Bctx等多個定時器超時桶,其中,每個定時器 超時桶的定時時間都為定時周期掃描器最小掃描時間的整數(shù)倍,且它們分別鏈接了不同定 時周期的子定時器,所述鏈接的子定時器的定時周期與定時器超時桶的定時時間相匹配, 定時周期掃描器在定時器超時桶的定時時間內(nèi)對該定時器超時桶所鏈接的子定時器進行 掃描,被掃描到的子定時器會執(zhí)行相應(yīng)的超時處理。圖4給出了本發(fā)明所采用的定時器裝 置的具體實現(xiàn)流程,如圖4所示,該流程主要包括如下步驟步驟401 按照各子定時器特點,將多個子定時器進行歸類,并將歸類后的多個子 定時器作為一個子定時器。在本步驟中,將多個子定時器歸為一類是依據(jù)某一原則來進行的,在不同的應(yīng)用 環(huán)境中,依據(jù)的原則可能是不同的,比如,在數(shù)據(jù)通信交換機設(shè)備的開發(fā)中,通常是依據(jù)物 理端口將子定時器進行歸類,具體為將每一個物理端口上功能類似、定時周期在誤差允 許的范圍內(nèi)作為相同的多個子定時器歸為一類,將這一類子定時器作為一個子定時器來使 用,從而得到了數(shù)量較少的子定時器。實際中,還可依據(jù)其他原則將多個不同的子定時器進 行歸類,以不影響本發(fā)明實施例的實現(xiàn)為準(zhǔn)。需要說明的是,當(dāng)子定時器個數(shù)很多時,多個子定時器同時進行超時處理的概率 是很高的,因此,可能會出現(xiàn)某個時刻CPU資源占用率很高的問題,為了減小CPU資源的占 用率,在本步驟中,將多個子定時器作為一個子定時器來使用。然而,在實際中,作為一個子定時器的多個子定時器的定時周期不可能是完全相同的,從而將多個子定時器作為一個子 定時器來使用,也就導(dǎo)致了某些子定時器的定時準(zhǔn)確度不高。步驟402 為歸類后的每一個子定時器設(shè)置定時周期。在本步驟中,需要為歸類后的每一個子定時器設(shè)置好定時周期,具體的實現(xiàn)方式為為每個子定時器建立一個數(shù)據(jù)池,從集合有子定時器可允許配置的定時周期的數(shù)據(jù)池 中隨機選擇一個數(shù)據(jù)作為子定時期的定時周期。步驟403 創(chuàng)建對應(yīng)有各定時時間的定時器超時桶。在本步驟中,定時器超時桶可以采用動態(tài)方式或靜態(tài)數(shù)組的方式來創(chuàng)建,且創(chuàng)建 的定時器超時桶的定時時間是定時周期掃描器的最小掃描時間的整數(shù)倍,且各定時器超時 桶按定時時間由小到大的順序依次鏈接成一鏈表步驟404 為定時器超時桶設(shè)置可鏈接的子定時器的數(shù)量。一個定時器超時桶中的子定時器是需要同時執(zhí)行超時處理的,而每個子定時器執(zhí) 行超時處理都是需要占用CPU資源的,為了使得某個時刻CPU資源占用率不能超過系統(tǒng)中 的CPU資源,也就需要限制定時器超時桶中的子定器個數(shù),即每個定時器超時桶可鏈接的 子定時期的數(shù)量是有上限的。需要說明的是,步驟403和404的操作與步驟401和402的操作是可并行進行的。步驟405 將定時周期與定時器超時桶的定時時間相匹配的子定時器鏈接到該定 時器超時桶中。在本步驟中,當(dāng)定時周期掃描器的掃描時間到達時,定時周期掃描器對定時時間 與所述掃描時間相等的定時器超時桶所鏈接的子定時器進行超時處理。步驟406 判斷子定時器是否成功鏈接到相匹配的定時器超時桶中,如果是,則結(jié) 束整個工作流程;否則,執(zhí)行步驟407。步驟407 在誤差允許的范圍內(nèi)為子定時器重新設(shè)置定時周期,返回至步驟405。需要說明的是,當(dāng)所述子定時器未成功鏈接到定時器超時桶時,則A、重新設(shè)置所述子定時器的定時周期,再將重新設(shè)置了定時周期的子定時器鏈接 到與定時器超時桶的定時時間相匹配的定時器超時桶中,如此反復(fù)執(zhí)行步驟A,直至所述子 定時器成功鏈接到定時器超時桶中。還需要說明的是,定時器超時桶鏈接的子定時器的數(shù)量是有上限的,當(dāng)將某個與 定時器超時桶的定時時間相匹配的子定時器鏈接到定時器超時桶中時,發(fā)送定時器超時桶 中鏈接的子定時器個數(shù)已經(jīng)達到了定時器超時桶的上限,應(yīng)為該子定時器重新選擇定時器 超時桶。當(dāng)重新選擇的定時器超時桶中的子定時器個數(shù)也達到了該定時器超時桶的上限 時,還可以為該子定時器進行第三次、第四次的選擇定時器超時桶等。但是,在實際應(yīng)用中, 如果第二次選擇定時器超時桶時發(fā)現(xiàn)定時器超時桶中子定時器的個數(shù)已經(jīng)達到了上限,即 可為認(rèn)為該子定時器沒有與之相匹配的定時器超時桶。同時,定時器超時桶的上限是可以來調(diào)節(jié)的,當(dāng)CPU資源占用率過大時,可適當(dāng)?shù)?調(diào)低定時器超時桶的上限;反之,則可適當(dāng)?shù)卣{(diào)高定時器超時桶的上限,讓一個定時器超時 桶可鏈接更多數(shù)量的子定時器,具體可在步驟404中進行。同步驟402 —樣,在本步驟中,所述重新設(shè)置所述子定時器的定時周期也可以為 在誤差允許的范圍內(nèi),從數(shù)據(jù)池中選擇一個數(shù)據(jù)作為為子定時器重新設(shè)置的定時周期。其它為子定時器重新設(shè)置定時周期的方式也是可以的,實際中以不影響本發(fā)明實施例的實現(xiàn) 為準(zhǔn)。
至此,即完成了本發(fā)明所采用的定時器實現(xiàn)裝置的整個工作流程。圖4給出的是 一種最佳的實施方式,實際中,不影響本發(fā)明實施例的各種實施方式都是可以的。圖5給出了圖3所采用的定時器實現(xiàn)裝置的結(jié)構(gòu)示意圖。從圖5中可以看出,該 定時器實現(xiàn)裝置主要包括歸類模塊51、創(chuàng)建模塊52、選擇模塊53、超時處理模塊54、數(shù)量 設(shè)置模塊55以及再選擇模塊56,其中,所述歸類模塊51,用于按照各子定時器特點,將多個子定時器進行歸類,并作為一 個子定時器。在本實施例中,所述歸類模塊51可以將每一個物理端口上功能類似、定時周期在 誤差允許的范圍內(nèi)作為相同的多個子定時器歸為一類。創(chuàng)建模塊52,用于為歸類模塊51歸類后得到的所有子定時器創(chuàng)建對應(yīng)有各定時 時間的定時器超時桶,各定時器超時桶按定時時間由小到大的順序依次鏈接成一鏈表,所 述定時時間為定時周期掃描器的最小掃描時間的整數(shù)倍。選擇模塊53,用于若一子定時器的定時周期與創(chuàng)建模塊52所創(chuàng)建的一定時器超 時桶對應(yīng)有的定時時間相匹配,則將該子定時器鏈接到該定時器超時桶中。超時處理模塊54,用于當(dāng)定時周期掃描器的掃描時間到達時,對定時時間與所述 掃描時間相等的定時器超時桶所鏈接的子定時器進行超時處理。數(shù)量設(shè)置模塊55,用于為所述創(chuàng)建模塊52創(chuàng)建的各定時器超時桶設(shè)置可鏈接的 子定時器的數(shù)量,并對各定時器超時桶可鏈接的子定時器數(shù)量進行調(diào)節(jié)。再選擇模塊56,用于當(dāng)選擇模塊53沒有將所述子定時器成功鏈接到定時器超時 桶時,則A、重新設(shè)置所述子定時器的定時周期,再將重新設(shè)置了定時周期的子定時器鏈接 到與定時器超時桶的定時時間相匹配的定時器超時桶中,如此反復(fù)執(zhí)行步驟A,直至所述子 定時器成功鏈接到定時器超時桶中。其中,所述重新設(shè)置所述子定時器的定時周期包括在誤差允許的范圍內(nèi),從集合 有子定時器可允許配置的定時周期的數(shù)據(jù)池中選擇一個數(shù)據(jù)作為為子定時器重新設(shè)置的 定時周期。至此,即得到了本發(fā)明所采用的定時器實現(xiàn)裝置。本實施例的具體工作流程參見 圖4,此處不再贅述。下面以圖3所設(shè)計的定時器實現(xiàn)裝置來說明該定時器實現(xiàn)裝置的具體工作過程首先,當(dāng)定時周期掃描器的掃描時間到達Bctl的定時時間時,定時周期掃描器對 Bctl中所鏈接的各個子定時器進行掃描,且在各個子定時器被掃描到時,都會執(zhí)行各自的 超時處理,從而完成該子定時器的定時功能;其次,當(dāng)定時周期掃描器的掃描時間到達Bct2的定時時間時,定時周期掃描器對 Bct2中所鏈接的各個子定時器進行掃描,同樣地,Bct2中所鏈接的各個子定時器也會分別 執(zhí)行各自的超時處理,依次類推,直至定時周期掃描器掃描完最后一個定時器超時桶所鏈 接的所有子定時器;最后,定時器周期掃描器被復(fù)位清零,且與所有的可重置型子定時器再同時進行啟動,并重新執(zhí)行對Bctl中所鏈接的各個子定時器的掃描。需要說明的是,同現(xiàn)有技術(shù)一樣,當(dāng)某個子定時器完成自己的超時處理后,且該子定時器為可重置型定時器,則該子定時器依舊被鏈接在所對應(yīng)的定時器超時桶中,否則,該 子定時器會從相應(yīng)的定時器超時桶中被刪除。總之,本發(fā)明所采用的定時器實現(xiàn)方法和裝置,是通過降低某些子定時器的定時 準(zhǔn)確度,從而避免了某個掃描時間內(nèi)可能會出現(xiàn)多個子定時器同時執(zhí)行超時處理的情況, 也就降低了 CPU的資源占用率;此外,本發(fā)明還通過減少子定時器的個數(shù)來減少多個子定 時器同時執(zhí)行超時處理的可能,進一步地降低了 CPU的資源占用率;最后,在本發(fā)明所采用 的方法中,定時器超時桶是按照定時時間由小到大的順序依次排列的,在某個掃描時間到 達時,定時器周期掃描器僅需掃描定時時間與掃描時間相等的定時器超時桶中的子定時器 即可,而無需在每個掃描時間到達時,定時周期掃描器對所有的子定時器都要進行掃描,從 而也降低了設(shè)計復(fù)雜度。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
權(quán)利要求
一種定時器實現(xiàn)方法,應(yīng)用于具有多個子定時器的定時器裝置中,其特征在于,該方法包括以下步驟創(chuàng)建對應(yīng)有各定時時間的定時器超時桶,各定時器超時桶按定時時間由小到大的順序依次鏈接成一鏈表,所述定時時間為定時周期掃描器的最小掃描時間的整數(shù)倍;若一子定時器的定時周期與一定時器超時桶對應(yīng)有的定時時間相匹配,則將該子定時器鏈接到該定時器超時桶中;當(dāng)定時周期掃描器的掃描時間到達時,定時周期掃描器對定時時間與所述掃描時間相等的定時器超時桶所鏈接的子定時器進行超時處理。
2.如權(quán)利要求1所述的方法,其特征在于,該方法進一步包括按照各子定時器特點, 將多個子定時器進行歸類,并作為一個子定時器。
3.如權(quán)利要求2所述的方法,其特征在于,所述按照各子定時器特點,將多個子定時器 進行歸類包括將每一個物理端口上功能類似、定時周期在誤差允許的范圍內(nèi)作為相同的 多個子定時器歸為一類。
4.如權(quán)利要求1所述的方法,其特征在于,所述創(chuàng)建對應(yīng)有各定時時間的定時器超時 桶之后,該方法還包括為所述創(chuàng)建的各定時器超時桶設(shè)置可鏈接的子定時器的數(shù)量,并對 各定時器超時桶可鏈接的子定時器數(shù)量進行調(diào)節(jié)。
5.如權(quán)利要求1所述的方法,其特征在于,所述將該子定時器鏈接到該定時器超時桶 中之后,進一步包括當(dāng)所述子定時器未成功鏈接到定時器超時桶時,則A、重新設(shè)置所述子定時器的定時周期,再將重新設(shè)置了定時周期的子定時器鏈接到與 定時器超時桶的定時時間相匹配的定時器超時桶中,如此反復(fù)執(zhí)行步驟A,直至所述子定時 器成功鏈接到定時器超時桶中。
6.如權(quán)利要求5所述的方法,其特征在于,所述重新設(shè)置所述子定時器的定時周期包 括在誤差允許的范圍內(nèi),從集合有子定時器可允許配置的定時周期的數(shù)據(jù)池中選擇一個 數(shù)據(jù)作為為子定時器重新設(shè)置的定時周期。
7.一種定時器實現(xiàn)裝置,其特征在于,該裝置包括創(chuàng)建模塊、選擇模塊和超時處理模 塊,其中,所述創(chuàng)建模塊,用于創(chuàng)建對應(yīng)有各定時時間的定時器超時桶,各定時器超時桶按定時 時間由小到大的順序依次鏈接成一鏈表,所述定時時間為定時周期掃描器的最小掃描時間 的整數(shù)倍;所述選擇模塊,用于若一子定時器的定時周期與一定時器超時桶對應(yīng)有的定時時間相 匹配,則將該子定時器鏈接到該定時器超時桶中;所述超時處理模塊,用于當(dāng)定時周期掃描器的掃描時間到達時,對定時時間與所述掃 描時間相等的定時器超時桶所鏈接的子定時器進行超時處理。
8.如權(quán)利要求7所述的裝置,其特征在于,該裝置還包括分類模塊,用于按照各子定時 器特點,將多個子定時器進行歸類,并作為一個子定時器。
9.如權(quán)利要求8所述的裝置,其特征在于,所述分類模塊,進一步用于按照各子定時器 特點,將多個子定時器進行歸類包括將每一個物理端口上功能類似、定時周期在誤差允許 的范圍內(nèi)作為相同的多個子定時器歸為一類。
10.如權(quán)利要求7所述的裝置,其特征在于,該裝置還包括數(shù)量設(shè)置模塊,用于為所述 創(chuàng)建的各定時器超時桶設(shè)置可鏈接的子定時器的數(shù)量,并對各定時器超時桶可鏈接的子定 時器數(shù)量進行調(diào)節(jié)。
11.如權(quán)利要求7所述的裝置,其特征在于,該裝置還包括再選擇單元,用于當(dāng)所述子 定時器未成功鏈接到定時器超時桶時,則A、重新設(shè)置所述子定時器的定時周期,再將重新設(shè)置了定時周期的子定時器鏈接到與 定時器超時桶的定時時間相匹配的定時器超時桶中,如此反復(fù)執(zhí)行步驟A,直至所述子定時 器成功鏈接到定時器超時桶中。
12.如權(quán)利要求11所述的裝置,其特征在于,所述重新設(shè)置所述子定時器的定時周期 包括在誤差允許的范圍內(nèi),從集合有子定時器可允許配置的定時周期的數(shù)據(jù)池中選擇一 個數(shù)據(jù)作為為子定時器重新設(shè)置的定時周期。
全文摘要
本發(fā)明提供了一種定時器實現(xiàn)方法和裝置創(chuàng)建對應(yīng)有各定時時間的定時器超時桶,各定時器超時桶按定時時間由小到大的順序依次鏈接成一鏈表;若一子定時器的定時周期與一定時器超時桶對應(yīng)有的定時時間相匹配,則將該子定時器鏈接到該定時器超時桶中;當(dāng)定時周期掃描器的掃描時間到達時,定時周期掃描器對定時時間與所述掃描時間相等的定時器超時桶所鏈接的子定時器進行超時處理。本發(fā)明所述的定時器實現(xiàn)方法和裝置,是通過降低某些子定時器的定時準(zhǔn)確度,從而避免了某個掃描時間內(nèi)可能會出現(xiàn)多個子定時器同時執(zhí)行超時處理的情況,也就降低了CPU的資源占用率,能夠?qū)崿F(xiàn)在降低CPU資源占用率的同時實現(xiàn)定時器的定時功能,并且設(shè)計復(fù)雜度低。
文檔編號G06F1/04GK101853047SQ201010180908
公開日2010年10月6日 申請日期2010年5月18日 優(yōu)先權(quán)日2010年5月18日
發(fā)明者陳衛(wèi)亮 申請人:瑞斯康達科技發(fā)展股份有限公司