• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種異步任務處理方法和裝置制造方法及圖紙

    技術編號:8532637 閱讀:157 留言:0更新日期:2013-04-04 15:32
    本發明專利技術公開了一種異步任務處理方法。首先將任務拆分為至少兩個子任務,根據每個子任務對應的代碼段生成一個對象,將對象按預定順序放入臨時隊列;然后,執行上述臨時隊列中的各對象。本發明專利技術還公開了一種異步任務處理裝置。采用本發明專利技術公開的異步任務處理方法和裝置,能夠提高任務的處理效率。

    【技術實現步驟摘要】

    本專利技術涉及計算機應用技術,特別是涉及一種異步任務處理方法和裝置
    技術介紹
    通常的輸入輸出(Input/Output,簡稱I/O)操作具有速度慢、不可預見的特點。如 果應用程序采用同步任務處理方法來執行I/O操作,則會放棄對正在完成實際工作的設備 的控制。例如,在應用程序從網絡上獲取數據的應用中,由于獲取數據的速度以及是否能夠 成功獲取數據均與網絡情況有關,所以無法預計該應用程序需要多長時間才能返回,導致 長時間放棄對設備的控制。因此,采用同步任務處理方法無法實現對設備的正確控制,需要 采用異步任務處理方法來執行I/O操作。目前的異步任務處理方法中,將一個任務的應用程序拆分成多個代碼段。上述多 個代碼段中,至少包括以下兩個代碼段一段用于發起異步請求,另一段用于異步完成后的 結果回調。然后,按照一定順序,將上述多個代碼段分別通過多個線程執行,每個線程執行 一個代碼段。采用上述現有的異步任務處理方法,由于通過多個不同的代碼段實現,上述多個 代碼段分別在不同的線程中執行,各個代碼段中分別采用不同的變量,因此,在多線程中共 享中間數據時,通常都通過參數傳遞的方式實現,存在數據共享操作復雜且效率低下的問 題。另外,在處理異常以及釋放資源時,需要在多個代碼段中分別設置異常處理和資源釋放 操作,實現方式復雜,無法實現統一的異常處理和資源釋放。總之,現有的異步任務處理方 法,存在對數據共享、異常處理和資源釋放等操作均無法實現統一控制,從而導致處理復雜 且效率低下的問題。
    技術實現思路
    本專利技術提供了一種異步任務處理方法和裝置,用以提高異步任務處理技術的處理 效率、降低其處理復雜度。為達到上述目的,本專利技術的技術方案是這樣實現的本專利技術提供了一種異步任務處理方法,包括將任務拆分為至少兩個子任務;根據每個子任務對應的代碼段生成一個對象,將所述對象按預定順序放入臨時隊 列;執行所述臨時隊列中的各對象。所述執行所述臨時隊列中的各對象包括在同一線程中執行所述臨時隊列中的全部對象。所述根據每個子任務對應的代碼段生成一個對象包括將每個子任務對應的代碼 段在內存中的入口地址和該代碼段的描述信息設置在對象中,并為該對象設置指針指向用 于存放執行結果的內存位置;所述執行所述臨時隊列中的各對象包括根據各對象中的所述入口地址,執行該 入口地址對應的代碼段;將當前對象的執行結果存儲到所述指針指向的內存位置。所述至少兩個子任務包括發起異步請求子任務和結果回調子任務;所述按預定順序放入臨時隊列包括所述發起異步請求子任務對應的對象位于所 述結果回調子任務對應的對象之前。所述按預定順序放入臨時隊列還包括在每一個所述對象之后設置“yield return”語句,用以標識當前對象執行完畢并 啟動執行下一個對象。所述方法還包括對臨時隊列中的各對象執行過程進行統一的異常處理,具體包 括在所述執行所述臨時隊列中的各對象之前插入異常捕獲操作;在所述執行所述臨 時隊列中的各對象之后插入異常處理操作;則在所述執行所述臨時隊列中的各對象過程中,監控并捕獲異常情況;當捕獲到 異常情況時,進行異常處理,結束。所述執行所述臨時隊列中的各對象之后,還包括對所述臨時隊列中的各對象統一進行資源釋放。一種異步任務處理裝置,包括任務設置單元,用于將任務拆分為至少兩個子任務,根據每個子任務對應的代碼 段生成一個對象,將所述對象按預定順序放入臨時隊列;任務執行單元,用于執行所述臨時隊列中的各對象。所述任務設置單元具體用于將任務拆分為至少兩個子任務;將每個子任務對應的 代碼段在內存中的入口地址和該代碼段的描述信息設置在對象中,并為該對象設置指針指 向用于存放執行結果的內存位置;將所述對象按預定順序放入臨時隊列;所述任務設置單元還用于在每一個所述對象之后設置“yield return”語句,用以 標識當前對象執行完畢并啟動執行下一個對象;所述任務執行單元具體用于根據各對象中的入口地址,執行該入口地址對應的代 碼段;將當前對象的執行結果存儲到當前對象的指針指向的內存位置。所述裝置還包括異常處理單元,用于對臨時隊列中的各對象執行過程進行統一的異常處理;具體 包括異常捕獲模塊,用于在執行所述臨時隊列中的各對象之前插入異常捕獲操作,用 以在執行所述臨時隊列中的各對象過程中監控并捕獲異常情況;和異常處理模塊,用于在執行所述臨時隊列中的各對象之后插入異常處理操作;, 在執行所述臨時隊列中的各對象過程中監控并捕獲異常情況,當所述異常捕獲模塊捕獲到 異常情況時,進行異常處理,結束;和/ 或,資源釋放單元,用于對所述臨時隊列中的各對象統一進行資源釋放。由上述可見,將一個任務對應的全部代碼拆分成多個代碼段,將多個代碼段對應 的對象放置在臨時隊列中,通過執行該臨時隊列實現在一個線程中統一執行上述多個對象對應的代碼段。因此可以在該線程中通過變量進行數據共享,數據共享的效率高,并且可以 很簡單直觀的通過對該臨時隊列統一進行異常處理和/或資源釋放來實現對多個代碼段 進行統一的異常處理和/或資源釋,從而能夠簡化處理過程且提高任務的處理效率。附圖說明圖1是本專利技術實施例一的異步任務處理方法的流程圖2是本專利技術實施例二的異步任務處理方法的流程圖3是本專利技術實施例三的異步任務處理裝置的結構示意圖。具體實施方式為了使本專利技術的目的、技術方案和優點更加清楚,下面結合附圖和具體實施例對 本專利技術進行詳細描述。本專利技術的基本思想是將一個任務對應的全部代碼拆分成多個代碼段,將多個代 碼段放置在臨時隊列中,通過執行該臨時隊列來統一執行上述多個代碼段。以下通過本發 明實施例一至本專利技術實施例三對本專利技術提出的異步任務處理方法和裝置進行詳細說明。圖1是本專利技術實施例一的異步任務處理方法的流程圖。如圖1所示,該方法包括 如下過程。步驟101 :將任務拆分為至少兩個子任務。步驟102 :根據每個子任務對應的代碼段生成一個對象,將該至少兩個對象按預 定順序放入臨時隊列。在步驟101和步驟102中,首先,將一個任務對應的全部代碼拆分成至少2個代碼 段,每個代碼段對應臨時隊列中的一個對象。較佳地,可以以該任務中的各子任務來劃分代 碼段,將該任務中的每一個子任務對應的代碼分別作為一個代碼段,比如該子任務可以是 用于發起異步請求的子任務對應的代碼段。相應地,還可以是用于結果回調的子任務對應 的代碼段。進一步地,還可以包括用于其它操作的子任務對應的代碼段,等等。然后,將上 述拆分獲得的多個代碼段對應的多個對象放置到臨時隊列中。較佳地,可以按照各個對象 對應的代碼段在該任務的全部代碼中的順序,將上述多個對象排列在臨時隊列中。按照上 述設置方法進行設置后,臨時隊列中包括至少2個對象,每個對象對應一個代碼段,該臨時 隊列的至少2個對象對應的至少2個代碼段組成上述任務對應的代碼。步驟103 :執行上述臨時隊列中的各對象。在本步驟中,通過執行該臨時隊列,對上述排列在該臨時隊列中的多個對象實現 統一執行。較佳地,在執行該臨時隊列時,在一個線程中按照隊列的先入先出原則執行上述 臨時隊列中的各對象。以上通過本專利技術實施例一對本專利技術的異步任務處理方法進行了簡要介紹,以下進 一步通過本專利技術實施例二詳細說明本專利技術的異步任務處理方法。圖2是本專利技術實施例二的異步任務處理方法的流程圖。如圖2所示,該本文檔來自技高網...

    【技術保護點】
    一種異步任務處理方法,其特征在于,包括:將任務拆分為至少兩個子任務;根據每個子任務對應的代碼段生成一個對象,將所述對象按預定順序放入臨時隊列;執行所述臨時隊列中的各對象。

    【技術特征摘要】
    1.一種異步任務處理方法,其特征在于,包括將任務拆分為至少兩個子任務;根據每個子任務對應的代碼段生成一個對象,將所述對象按預定順序放入臨時隊列;執行所述臨時隊列中的各對象。2.根據權利要求1所述的方法,其特征在于,所述執行所述臨時隊列中的各對象包括在同一線程中執行所述臨時隊列中的全部對象。3.根據權利要求1所述的方法,其特征在于,所述根據每個子任務對應的代碼段生成一個對象包括將每個子任務對應的代碼段在內存中的入口地址和該代碼段的描述信息設置在對象中,并為該對象設置指針指向用于存放執行結果的內存位置;所述執行所述臨時隊列中的各對象包括根據各對象中的所述入口地址,執行該入口地址對應的代碼段;將當前對象的執行結果存儲到所述指針指向的內存位置。4.根據權利要求1至3中任意一項所述的方法,其特征在于,所述至少兩個子任務包括發起異步請求子任務和結果回調子任務;所述按預定順序放入臨時隊列包括所述發起異步請求子任務對應的對象位于所述結果回調子任務對應的對象之前。5.根據權利要求1至3中任意一項所述的方法,其特征在于,所述按預定順序放入臨時隊列還包括在每一個所述對象之后設置“yield return”語句,用以標識當前對象執行完畢并啟動執行下一個對象。6.根據權利要求1至3中任意一項所述的方法,其特征在于,所述方法還包括對臨時隊列中的各對象執行過程進行統一的異常處理,具體包括在所述執行所述臨時隊列中的各對象之前插入異常捕獲操作;在所述執行所述臨時隊列中的各對象之后插入異常處理操作;則在所述執行所述臨時隊列中的各對象過程中,監控并捕獲異常情況;當捕獲到異常情況時,進行異常處理...

    【專利技術屬性】
    技術研發人員:何慶明
    申請(專利權)人:北京新媒傳信科技有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 亚洲精品无码久久久久APP| 无码人妻一区二区三区免费| 免费无码VA一区二区三区 | 人妻无码第一区二区三区| 亚洲成AV人片天堂网无码| 亚洲精品无码成人片久久不卡 | 人妻中文字幕无码专区| 亚洲AV无码国产剧情| 亚洲成a人片在线观看无码| 色欲香天天综合网无码| 无码H黄肉动漫在线观看网站| 国产成人综合日韩精品无码不卡| 精品无码专区亚洲| 无遮掩无码h成人av动漫| 中文字幕无码乱人伦| 无码少妇一区二区浪潮免费| 无码无套少妇毛多18p| 日韩人妻无码精品系列| 国产成人无码A区在线观看视频| 无码人妻一区二区三区一| 无码专区天天躁天天躁在线| 亚洲精品~无码抽插| 久久久久成人精品无码| 日韩AV无码不卡网站| 毛片亚洲AV无码精品国产午夜| 手机在线观看?v无码片| 精品国产性色无码AV网站| 亚洲AV无码之国产精品| 久久亚洲精品无码VA大香大香| 亚洲av无码成h人动漫无遮挡| 国产在线无码不卡影视影院| 一区二区三区人妻无码| 亚洲一区精品无码| 国产成人亚洲综合无码精品| 亚洲午夜国产精品无码| 久久久久亚洲av无码专区蜜芽 | 国产精品无码一区二区在线| 欧洲精品无码成人久久久| a级毛片无码免费真人| 韩国无码AV片在线观看网站 | 99久久国产热无码精品免费|