[发明专利]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.vipzhuanli.com/pat/books/201310214946.3/2.html,转载请声明来源钻瓜专利网。