新四季網

一種在多線程環境下高效處理延時任務的方法

2023-05-24 18:19:56

專利名稱:一種在多線程環境下高效處理延時任務的方法
技術領域:
本發明涉及一種在多線程環境下高效處理延時任務的方法,特別涉及一種使用 C# (C#是微軟公司發布的一種面向對象的、運行於.NET Framework之上的高級程序設計語 言。它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運行的過 程,是微軟公司.NET windows網絡框架的主角。)技術在多線程環境下高效處理延時任務 的方法。
背景技術:
運行在多線程環境下的服務程序一般比單線程複雜得多,因為在這種情況下需要 對共享資源的同步。而且.Net本身提供了線程池,這在提高服務效率的時候,也在一定程 度上增加了開發的複雜性,因為把用戶請求具體分配給哪個線程是.Net線程池決定的,開 發人員不能確定新用戶的請求將被哪個線程處理。一般的如果想讓線程過一段時間再執行,可以採用Thread. Sleep方法,此方法將 讓線程沉寂一會以後再被喚醒執行以達到延時的目的。此方法雖然簡單,但是可能會影響 其他用戶,因為可能會有多個客戶端同時使用一個伺服器線程處理任務,伺服器貿然的把 某個線程Sle印,可能會使其他使用這個線程處理任務的客戶端的請求也被掛起,這通常會 大大影響用戶體驗甚至使程序邏輯發生混亂。

發明內容
本發明所要解決的技術問題是提供一種在多線程環境下,使用與用戶線程獨立的 時鐘線程觸發定時任務,使延時執行的任務能夠穩定高效的被處理的方法。本發明所述的一種在多線程環境下高效處理延時任務的方法,該方法至少包括如 下的步驟步驟1 用一個類作為所有任務的基類,其他的具體的延時任務必須繼承這個基 類。此類有一個屬性jxecuteTime表示任務被執行的時間,有一個虛方法Execute 用來 被在到了任務執行時間後,執行具體操作;步驟2 程序啟動時,首先初始化一個任務列表處理器,它包含一個待處理任務列 表,所有的定時任務在初始化好以後,必須加入這個任務列表中等待執行。此處理器有兩個 方法Execute 和AddDuty (Duty duty),前一個方法用來執行任務列表裡面的任務,後一 個方法用於把具體任務添加到任務列表;步驟3 在應用程式啟動時,初始化一個任務調度器,它包含一個時鐘Timer對 象,它每隔一小段時間激發一次,執行任務列表對象的Execute 方法;步驟4 當應用想執行一個延時到某一時間點執行的任務的時候,必須初始化一 個繼承了任務基類並且重寫了 ExecuteO方法的具體任務對象,然後通過任務列表處理器 的AddDuty (Duty duty)方法把任務添加到任務列表中;步驟5 每過一小段時間,任務調度器會執行任務列表處理器的ExecuteO方法,此方法按照順序取出所有的任務對象,判斷執行時間,如果執行之間>當前時間,則執行此 任務對象的Execute 方法;本發明涉及的一種在多線程環境下高效處理延時任務的方法,使得在多線程的復 雜環境下,延時執行的任務能夠執行,因為時鐘線程不會和任何一個客戶端請求共用,所以 在它執行定時任務的時候,不會對任何用戶請求造成影響。
具體實施例方式本發明的主要步驟如下步驟1 用一個類作為所有任務的基類,其他的具體的延時任務必須繼承這個基 類;步驟2 程序啟動時,首先初始化一個任務列表處理器,它包含一個待處理任務列 表,所有的定時任務在初始化好以後,必須加入這個任務列表中等待執行;步驟3 在應用程式啟動時,初始化一個任務調度器,它每隔一小段時間激發一 次,執行任務列表對象的Execute 方法;步驟4 當應用想執行一個延時到某一時間點執行的任務的時候,必須初始化一 個繼承了任務基類並且重寫了 ExecuteO方法的具體任務對象,然後通過任務列表處理器 的AddDuty(Duty duty)方法把任務添加到任務列表中;步驟5 每過一小段時間,任務調度器會執行任務列表處理器的ExecuteO方法, 此方法按照順序取出所有的任務對象,判斷執行時間,如果執行之間 > 當前時間,則執行此 任務對象的ExecuteO方法;上述的技術方案實施時,初始化任務和具體執行任務實現了鬆耦合,這大大增加 了定時任務系統的可擴展性,另外,因為使用單獨的時鐘線程來定時觸發任務,使得在多線 程的複雜環境下定時任務的執行更加穩定高效,即使有多個客戶端共用一個線程,在執行 定時任務的時候,已有的任何用戶線程都不會被影響。最後所應說明的是,以上實施例僅用以說明而並非限制本發明所描述的技術方 案;因此,儘管本說明書參照上述的實施例對本發明已進行了詳細的說明,但是,本領域的 普通技術人員應當理解,仍然可以對本發明進行修改或者等同地替換;而一切不脫離本發 明的精神和範圍的技術方案及其改進,其均應涵蓋在本發明的權利要求範圍當中。
權利要求
一種在多線程環境下高效處理延時任務的方法,其特徵在於該方法至少包括如下的步驟步驟1用一個類作為所有任務的基類,其他的具體的延時任務必須繼承這個基類。步驟2程序啟動時,首先初始化一個任務列表處理器,它包含一個待處理任務列表,所有的定時任務在初始化好以後,必須加入這個任務列表中等待執行。步驟3在應用程式啟動時,初始化一個任務調度器,它包含一個時鐘Timer對象,它每隔一小段時間激發一次,執行任務列表對象的Execute方法。步驟4當應用想執行一個延時到某一時間點執行的任務的時候,必須初始化一個繼承了任務基類並且重寫了Execute方法的具體任務對象,然後通過任務列表處理器的AddDuty方法把任務添加到任務列表中。步驟5每過一小段時間,任務調度器會執行任務列表處理器的Execute方法,此方法按照順序取出所有的任務對象,判斷執行時間,如果執行之間>當前時間,則執行此任務對象的Execute方法。
全文摘要
一種在多線程環境下高效處理延時任務的方法,首先用一個類作為所有任務的基類,其他的具體的延時任務必須繼承這個基類;程序啟動時,首先初始化一個任務列表處理器,它包含一個待處理任務列表,所有的定時任務在初始化好以後,必須加入這個任務列表中等待執行;然後在應用程式啟動時,初始化一個任務調度器;當應用想執行一個延時到某一時間點執行的任務的時候,必須初始化一個繼承了任務基類並且重寫了Execute方法的具體任務對象,然後通過任務列表處理器的AddDuty方法把任務添加到任務列表中;最後每過一小段時間,任務調度器會執行任務列表處理器的Execute方法。本發明使得在多線程的複雜環境下,延時執行的任務能夠執行。
文檔編號G06F9/44GK101887361SQ20091008409
公開日2010年11月17日 申請日期2009年5月14日 優先權日2009年5月14日
發明者劉立軍, 張守文, 王磊, 陶勇勝 申請人:灰熊(北京)科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀