[發明專利]Android系統多任務并發處理方法及裝置在審
| 申請號: | 201310214946.3 | 申請日: | 2013-05-31 |
| 公開(公告)號: | CN103279331A | 公開(公告)日: | 2013-09-04 |
| 發明(設計)人: | 李秋作;李淑惠;金京濤;鄭揚飛;何巖;劉毅;吳瑜;劉玉龍;胡春波;金輝 | 申請(專利權)人: | 中國電子科技集團公司第十五研究所 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 北京市京大律師事務所 11321 | 代理人: | 黃啟行;方曉明 |
| 地址: | 100083 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | android 系統 任務 并發 處理 方法 裝置 | ||
技術領域
本發明涉及數據處理技術領域,具體涉及一種Android系統多任務并發處理方法及裝置。
背景技術
現有基于Linux的Android系統的多任務并發執行,是指將程序分為多個分離的、獨立運行的任務,并使多個獨立運行的任務“同步”執行的過程。利用多線程機制,并發執行的每個任務均由一個相應的線程來驅動。多任務并發執行使程序的響應速度更快。
現有Android系統在并發執行的多任務時,會創建與任務數量相同的線程以執行相應的任務。由于系統分配給每個線程的時間相等,當其中一個或一些線程的運算量過大時,在分配的時間內該線程便無法完成,若系統為使其他線程正常工作,便會強制該線程結束以運行其他線程,此時運行的程序便會出現異常;若系統強制該線程執行完畢,則其他線程的運行則無法正常進行,從而導致程序崩潰。
為避免程序出現異常或崩潰,現有Android系統采用線程管理器對運行的線程進行管理:當系統檢測到程序異常或需要運行系統線程時(系統線程的優先級高于其他任務線程優先級),線程管理器將當前運行的線程拋出,則當前執行的任務被迫結束,因此仍然會存在程序異常。
同時現有Android系統中,并發執行中的任務的狀態和與它對應的線程的狀態會根據任務的種類不同而出現不一致。如:一個任務為暫停狀態,與其相應的線程的狀態則可能為暫停或死亡狀態。這樣就使Android系統對線程的控制比較混亂,不利于系統對程序的維護。
由上可知,有必要提供一種能夠對系統中出現的異常程序進行補償,避免程序異常或崩潰,同時有利于系統對程序維護的多任務并發處理方法及裝置。
發明內容
本發明的發明目的在于提供了一種Android系統多任務并發處理方法及裝置,用于Android系統在處理大量并行任務時能夠對異常程序進行異常補償,避免系統出現異常或崩潰,同時有利于系統對程序的維護。
根據本發明的實施例的一個方面,提供了一種Android系統多任務并發處理方法,包括:
并發處理器在接收到傳入的新任務后,判斷當前線程的個數是否小于設定的最大線程數;若是,將傳入的新任務放入運行隊列后,為之創建一個當前線程,用于執行所述新任務;否則,將所述新任務放入就緒隊列;
若由所述并發處理器創建的一個當前線程執行完畢,則所述并發處理器將所述就緒隊列頂端的任務移動到所述運行隊列,并為該任務創建一個用于執行該任務的當前線程。
進一步地,上述方法還包括:
若由所述并發處理器創建的一個當前線程在執行過程中出現暫停或異常,則所述并發處理器將該當前線程移至暫停異常隊列中并在接收到重新開始onRestart命令時將該當前線程移至所述就緒隊列中;所述onRestart命令是所述Android系統在檢測到所述就緒隊列為空時向所述并發處理器發送的。
更進一步地,所述并發處理器還接收
暫停onPause命令,并將所述運行隊列或所述就緒隊列中該onPause命令所指向的任務轉移到暫停異常隊列中;以及
所述并發處理器還接收取消onCancel命令,并將所述onCancel命令所指向的任務移除;
其中,所述onPause命令是所述Android系統在檢測到網絡中斷或發生故障時向所述并發處理器發送的;
所述onCancel命令是所述Android系統在檢測到用戶在操作頁面進行了關閉任務的觸發事件時向所述并發處理器發送的。
其中,所述最大線程數為所述運行隊列在同一時刻能夠運行的當前線程個數的最大值。
優選地,所述并發處理器還包括:
互斥鎖程序,用于使所述并發處理器在同一時刻只運行一種類型的任務。
根據本發明的實施例的另一個方面,還提供了一種Android系統多任務并發處理裝置,包括并發處理器,所述并發處理器包括:
判斷單元,用于在所述并發處理器接收到傳入的新任務后,判斷當前線程的個數是否小于設定的最大線程數;
運行單元,包括運行隊列,用于為放入所述運行隊列中的新任務創建一個當前線程并執行所述新任務;
就緒單元,包括就緒隊列,用于存放就緒狀態的任務;
控制單元,用于根據判斷單元得出的判斷結果將所述傳入的新任務移至所述運行單元的運行隊列中或所述就緒單元的就緒隊列中;以及
在所述運行隊列中一個當前線程執行完畢后,所述運行單元將所述就緒隊列頂端的任務移動到所述運行隊列。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國電子科技集團公司第十五研究所,未經中國電子科技集團公司第十五研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310214946.3/2.html,轉載請聲明來源鉆瓜專利網。





