一种通过线程管理提高多任务处理效率的方法

文档序号:6334294阅读:199来源:国知局
专利名称:一种通过线程管理提高多任务处理效率的方法
技术领域
本发明涉及JAVA平台的多任务事件处理领域。
背景技术
线程(thread),有时被称为轻量级进程(Lightweight Process, LffP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。 另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。在软件系统开发中,在系统开发过程中经常会用到多线程处理不同的任务事件,多个线程创建造成系统资源利用不高,线程管理混乱,线程处理耦合性高,造成开发效率低下,出现问题很难定位,经常会有莫名奇妙错误出现,并且对于线程开发代码有一定重复性,减低工作效率。

发明内容
本发明所要解决的技术问题是提供一种通过线程管理提高多任务处理效率的方法,在一个单线程任务调度器中,任务调度器就根据任务对象优先级调用优先级高的任务对象异步事件处理防范,从而减少系统资源的开支,减少任务对象开发工作;可以将业务开发工作放在处理逻辑中,避免了重复进行线程处理的工作,提高了工作效率。为解决上述技术问题,本发明的技术方案是一种通过线程管理提高多任务处理效率的方法,在JAVA平台的任务管理系统中,利用单线程中的任务对象来实现多线程操作,具体方法如下S101)创建任务调度器;S102)创建任务对象,并将其添加到任务调度器中注册;S103)启动任务调度器;S104)任务调度器通过异步函数处理不同任务事件;S105)异步处理完任务事件,通知任务对象处理结果;S106)任务对象向任务调度器发起注销请求,从任务调度器中去掉任务对象。本发明的通过在多任务多线程开发过程中预先定义好单线程多任务处理方式,在一个单线程任务调度器中,只需集成任务对象基类,并重写事件处理方法,并将任务对象添加到任务调度器中,任务调度器就可以根据任务对象优先级调用优先级高的任务对象异步事件处理防范,从而减少系统资源的开支,减少任务对象开发工作;可以将业务开发工作放在处理逻辑中,提高了工作效率。
作为改进,所述步骤S101)中,任务调度器提供标准任务对象注册接口和处理任务对象接口。作为改进,所述步骤中,任务调度器接收服务提供者发送的异步事件并将其分发到任务对象。作为改进,所述步骤中,任务调度器调用AddO静态函数将任务对象添加到调度队列中。作为改进,所述步骤S102)中,任务对象继承与任务对象一个抽象类,其派生任务对象类必须实现DoCancelO函数和RimLO函数,DoCancel ()函数用于取消异步请求, RunLO函数就是任务对象的事件处理函数。作为改进,所述步骤S102)中,将任务对象设定优先级,任务对象的运行是非抢占式的,当一个任务对象的RunLO执行时,任务调度器就无法分发其他异步事件,两个任务对象不会同时运行。作为改进,所述步骤Sl(XB)中,向任务调度器发送异步请求,启动任务调度器,并由任务调度器分发的任务对象异步事件进行处理,同时将任务对象设置为激活状态。作为改进,所述步骤S104)中,任务调度器最先接收到该异步请求,随后从任务队列中选出处于激活状态而且优先级最高的任务对象,将其状态设置为非激活的,然后将事件分发给他处理。作为改进,所述步骤S105)中,任务调度器根据RimLO执行的结果,向任务对象发起通知事件,通知处理事件的结果状态,任务调度器还会捕获RunL ()函数抛出的异常,并调用任务对象的RimError ()函数处理该异常。作为改进,所述步骤S106)中,任务对象提供DequeO函数将任务对象从任务调度器中的队列上移除,在移除之前,DequeO函数会调用CancelO函数取消异步请求。本发明与现有技术相比所带来的有益效果是本发明的通过在多任务多线程开发过程中预先定义好单线程多任务处理方式,在一个单线程任务调度器中,只需集成任务对象基类,并重写事件处理方法,并将任务对象添加到任务调度器中,任务调度器就可以根据任务对象优先级调用优先级高的任务对象异步事件处理防范,从而减少系统资源的开支,减少任务对象开发工作;可以将业务开发工作放在处理逻辑中,提高了工作效率。


图1为本发明单线程处理多个任务的流程图。
具体实施例方式下面结合说明书附图对本发明作进一步说明。一种通过线程管理提高多任务处理效率的方法,在JAVA平台的任务管理系统中, 利用单线程中的任务对象来实现多线程操作,具体方法如下S101)创建任务调度器;任务调度器提供标准任务对象注册接口和处理任务对象接口 ;S102)创建任务对象;任务对象继承与任务对象一个抽象类,其派生任务对象类必须实现DoCancelO函数和RunLO函数,DoCancel ()函数用于取消异步请求,RunLO 函数就是任务对象的事件处理函数;首先将任务对象设定优先级,方便任务调度器处理顺序;任务调度器接收服务提供者发送的异步事件,任务对象的运行是非抢占式的,当一个任务对象的RunLO执行时,任务调度器就无法分发其他异步事件,两个任务对象不会同时运行;然后任务调度器调用AddO静态函数将任务对象添加到调度队列中;S103)启动任务调度器;向任务调度器发送异步请求,启动任务调度器,并由任务调度器分发的任务对象异步事件进行处理,同时将任务对象设置为激活状态;S104)任务调度器通过异步函数处理不同任务事件;任务调度器最先接收到该异步请求,随后从任务队列中选出处于激活状态而且优先级最高的任务对象,将其状态设置为非激活的,然后将事件分发给他处理即调用任务对象的事件处理函数RunL ;S105)异步处理完任务事件;通知任务对象处理结果,任务调度器根据RimLO 执行的结果,向任务对象发起通知事件,通知处理事件的结果状态,任务调度器还会捕获 RunLO函数抛出的异常,并调用任务对象的RimError ()函数处理该异常;S106)任务对象向任务调度器发起注销请求,从任务调度器中去掉任务对象;任务对象提供DequeO函数将任务对象从任务调度器中的队列上移除,在移除之前,DequeO 函数会调用CancelO函数取消异步请求。本发明的通过在多任务多线程开发过程中预先定义好单线程多任务处理方式,在一个单线程任务调度器中,只需集成任务对象基类,并重写事件处理方法,并将任务对象添加到任务调度器中,任务调度器就可以根据任务对象优先级调用优先级高的任务对象异步事件处理防范,从而减少系统资源的开支,减少任务对象开发工作;可以将业务开发工作放在处理逻辑中,提高了工作效率。以上内容是结合具体的优选技术方案对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1.一种通过线程管理提高多任务处理效率的方法,其特征在于在JAVA平台的任务管理系统中,利用单线程中的任务对象来实现多线程操作,具体方法如下5101)创建任务调度器;5102)创建任务对象,并将其添加到任务调度器中注册;5103)启动任务调度器;5104)任务调度器通过异步函数处理不同任务事件;5105)异步处理完任务事件,通知任务对象处理结果;5106)任务对象向任务调度器发起注销请求,从任务调度器中去掉任务对象。
2.根据权利要求1所述的一种通过线程管理提高多任务处理效率的方法,其特征在于所述步骤S101)中,任务调度器提供标准任务对象注册接口和处理任务对象接口。
3.根据权利要求1所述的一种通过线程管理提高多任务处理效率的方法,其特征在于所述步骤S102)中,任务调度器接收服务提供者发送的异步事件并将其分发到任务对象。
4.根据权利要求1所述的一种通过线程管理提高多任务处理效率的方法,其特征在于所述步骤中,任务调度器调用AddO静态函数将任务对象添加到调度队列中。
5.根据权利要求1所述的一种通过线程管理提高多任务处理效率的方法,其特征在于所述步骤S102)中,任务对象继承与任务对象一个抽象类,其派生任务对象类必须实现 DoCancel ()函数和RimLO函数,DoCancel ()函数用于取消异步请求,RunLO函数就是任务对象的事件处理函数。
6.根据权利要求1所述的一种通过线程管理提高多任务处理效率的方法,其特征在于所述步骤S102)中,将任务对象设定优先级,任务对象的运行是非抢占式的,当一个任务对象的RunLO执行时,任务调度器就无法分发其他异步事件,两个任务对象不会同时运行。
7.根据权利要求1所述的一种通过线程管理提高多任务处理效率的方法,其特征在于所述步骤Sl(XB)中,向任务调度器发送异步请求,启动任务调度器,并由任务调度器分发的任务对象异步事件进行处理,同时将任务对象设置为激活状态。
8.根据权利要求1所述的一种通过线程管理提高多任务处理效率的方法,其特征在于所述步骤S104)中,任务调度器最先接收到该异步请求,随后从任务队列中选出处于激活状态而且优先级最高的任务对象,将其状态设置为非激活的,然后将事件分发给他处理。
9.根据权利要求1所述的一种通过线程管理提高多任务处理效率的方法,其特征在于所述步骤S105)中,任务调度器根据RimLO执行的结果,向任务对象发起通知事件,通知处理事件的结果状态,任务调度器还会捕获RunLO函数抛出的异常,并调用任务对象的 RunError()函数处理该异常。
10.根据权利要求1所述的一种通过线程管理提高多任务处理效率的方法,其特征在于所述步骤S106)中,任务对象提供DequeO函数将任务对象从任务调度器中的队列上移除,在移除之前,DequeO函数会调用CancelO函数取消异步请求。
全文摘要
本发明适用于JAVA平台的多任务管理领域,利用单线程中的任务对象来实现多线程操作,通过继承任务对象基类,并对每个任务对象进行不同的优先级和回调接口配置,然后在任务调度器线程中进行注册,通过任务对象配置提高了任务处理速度。多任务管理方式包括S101创建任务调度器;S102创建任务对象,并添加到任务调度器中注册;S103启动任务调度器;S104任务调度器通过异步函数处理不同任务事件;S105异步处理完任务事件,通知任务对象处理结果;S106任务对象向任务调度器发起注销请求,从任务调度器中去掉任务对象。
文档编号G06F9/46GK102455933SQ201010517150
公开日2012年5月16日 申请日期2010年10月22日 优先权日2010年10月22日
发明者张利 申请人:深圳市科陆电子科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1