一种基于范式的多任务调度方法、装置及通信终端的制作方法

文档序号:6334685阅读:307来源:国知局
专利名称:一种基于范式的多任务调度方法、装置及通信终端的制作方法
技术领域
本发明属于计算机领域,尤其涉及一种基于范式的多任务调度方法、装置及通信终端。
背景技术
在执行多个任务时,可以根据一定的顺序逐个执行,也可以多个任务同时执行。实际应用中,常用代码表示任务的串、并行关系以及任务的先后执行顺序。当任务的串并行关系或者执行的先后顺序不同时,其对应的代码也不同。假设有A、B、C三个任务,要求先执行A,再同时执行B和C,在实现上述需求时,通过如下代码实现第一步,执行任务A =CallTask(A);第二步,新创建线程T :createThread(T);第三步,执行T,即B开始执行Τ· run ()第四步,执行任务C =CallTask(C)其中,第三步由新线程执行,第四步由主线程执行,而新线程和主线程是同时执行任务B和C。当要求变为顺序执行A、B、C时,则代码改变为第一步,执行A :callTask(A);第二步,执行B :callTask(B);第三步,执行C :callTask(C);当需要更改任务的执行顺序或者并行关系时,对应其实现流程的代码也需要修改,并且需要重新调试、编译、测试、部署,如果调试或者测试工作不正确,还会有出错的风险。

发明内容
本发明提供了一种基于范式的多任务调度方法,旨在解决更改任务的执行顺序或者串、并行关系时,需要重新修改代码,编写、编译代码的问题。本发明是这样实现的,一种基于范式的多任务调度方法,所述方法包括下述步骤接收并解析范式表达式,所述范式表达式定义了任务的执行顺序和串并行关系;根据解析后的范式表达式对多任务进行调度处理。本发明的另一目的在于提供一种基于范式的多任务调度装置,所述装置包括解析范式模块,用于接收并解析范式表达式,所述范式表达式定义了任务的执行顺序和串并行关系;调度范式模块,用于根据解析后的范式表达式对多任务进行调度处理。本发明实施例的另一目的在于提供一种包含上述基于范式的多任务调度装置的通信终端。本发明实施例,接收并解析定义了任务的执行顺序和串并行关系的表示多个任务的先后执行顺序以及任务间的串行和并行关系范式表达式之后,根据作为单独的配置文件存储起来的范式规则解析接收的范式表达式,同时再根据为范式表达式提供的固定程序执行对解析后的范式表达式进行多任务的调度处理,由于在任务的先后执行顺序或者串行或者并行关系改变时,只需修改定义了多个任务的执行顺序和串并行关系的表示任务的范式表达式,因此节省了重新编写、编译代码的时间,达到快速适应需求变更的目的。


图1是本发明实施例提供的基于范式的多任务调度方法流程;图2是本发明实施例提供的基于范式的多任务调度装置的结构。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施接收并解析定义了任务的执行顺序和串并行关系的表示多个任务的先后执行顺序以及任务间的串行和并行关系范式表达式之后,根据作为单独的配置文件存储起来的范式规则解析接收的范式表达式,同时再根据为范式表达式提供的固定程序执行对解析后的范式表达式进行多任务的调度处理。本发明提供了一种基于范式的多任务调度方法、装置及通信终端所述方法包括接收并解析范式表达式,所述范式表达式定义了任务的执行顺序和串并行关系;根据解析后的范式表达式对多任务进行调度处理。所述装置包括解析范式模块,用于接收并解析范式表达式,所述范式表达式定义了任务的执行顺序和串并行关系;调度范式模块,用于根据解析后的范式表达式对多任务进行调度处理。所述通信终端包括包含上述基于范式的多任务调度装置的通信终端。本发明实施例中,接收并解析定义了任务的执行顺序和串并行关系的表示多个任务的先后执行顺序以及任务间的串行和并行关系范式表达式之后,根据作为单独的配置文件存储起来的范式规则解析接收的范式表达式,同时再根据为范式表达式提供的固定程序执行对解析后的范式表达式进行多任务的调度处理,由于在任务的先后执行顺序或者串行或者并行关系改变时,只需修改定义了多个任务的执行顺序和串并行关系的表示任务的范式表达式,因此节省了重新编写、编译代码的时间,达到快速适应需求变更的目的。实施例一图1示出了本发明实施例提供的基于范式的多任务调度方法流程,详述如下在步骤Sll中,接收并解析范式表达式,所述范式表达式定义了任务的执行顺序和串并行关系定义;范式表达式为每个任务定义一个结点,比如,用结点A标识任务A,用结点B标识
4任务B,确保每一个结点标识一个任务;定义任务间的执行顺序,比如定义从左到右执行范式表达式的顺序,即定义执行范式表达式中各个结点表示的各个任务的顺序,其中,执行范式表达式的先后顺序还可以使用定义的括号改变,确定括号的优先级最高,即定义执行各个任务的顺序与数学上执行只有加减号、括号的四则运算的顺序相似;进一步地,该范式表达式还包括定义在表示两个任务的两个结点之间定义一个分隔符,该分隔符表示串行或者并行执行被隔开的两个结点,比如,用逗号“,”表示串行执行被隔开的两个结点,用分号 “;”表示并行执行被隔开的两个结点。假设一个范式表达式为A,(B ;C),逗号“,”表示串行执行两个结点,分号“;”表示并行执行两个结点,小括号的优先级高于串行、并行的执行方式,且执行顺序为从左至右的顺序,则该范式表达式表示首先执行(B ;C),获得结果D,再执行A,D,其中,并行执行结点 B和结点C,串行执行结点A和结点D。当然,为各个任务定义的结点、任务间的执行顺序以及分隔两个结点的符号可以根据实际情况的改变而改变,此处不作限定。其中,接收并解析范式表达式,所述范式表达式定义了任务的执行顺序和串并行关系的步骤具体为判断范式表达式中结点的个数是否为0,若为0,则返回;若不为0,继续判断该接收的范式表达式中结点的个数是否为1,若为1,则直接解析该结点;若不为1,则将该范式表达式解析为两个范式表达式,递归执行上述步骤,直到范式表达式中结点的个数为0。将一个范式表达式解析为两个范式表达式之后,继续分别解析这两个范式表达式。分别获取这两个范式表达式中结点的个数,若范式表达式中没有结点,则返回;若只有一个结点,则直接解析该结点;若有两个或两个以上结点,则继续将范式表达式解析为两个范式表达式,并根据解析得到的两个范式表达式之间的分隔符串行或者并行解析这两个范式表达式,如果分隔符与范式表达式定义的串行分隔符相同,则首先解析优先级较高的范式表达式,再解析优先级较低的范式表达式,如果分隔符与范式规则定义的并行分隔符相同,则新建线程解析优先级较高的范式表达式,再在主线程中解析优先级较低的范式表达式。递归执行上述步骤,直到范式表达式中的结点个数为0。作为本发明的另一个实施例,在范式表达式结点大于等于2时,将范式表达式解析为两个范式表达式的步骤具体为判断执行解析得到的两个范式表达式的步骤是否为原范式表达式中的最后一个执行步骤,若是,则将该原范式表达式的最后一个执行步骤解析为两个范式表达式,递归执行上述步骤,直到范式表达式中的结点个数为0。假设范式表达式为A ; (B, C),D,小括号的优先级高于串行和并行的执行顺序,逗号“,”表示串行执行,分号“;”表示并行执行,且执行顺序为从左到右的顺序。解析该范式表达式,由于该范式表达式的结点个数为4个,因此先判断出执行[A; (B,C)],D是否为原范式表达式中的最后一个执行步骤,在判断出[A ; (B,C)],D为原范式表达式中的最后一个执行步骤之后,将范式表达式A ; (B,C),D解析为范式表达式D和范式表达式A ; (B, C)。又因为范式表达式A ; (B,C)中结点的个数为3,因此须将范式表达式A ; (B,C)解析为两个范式表达式由于小括号优先级高于串、并行的执行顺序,因此将范式表达式A ; (B, C)解析为范式表达式A和范式表达式(B,C)。继续解析范式表达式(B,C),将其解析为范式表达式C和范式表达式B,本发明实施例中,将一个原范式表达式解析为两个范式表达式,都是解析该原范式表达式的最后一个执行步骤,递归执行上述步骤,直到范式表达式中结点的个数为1 才停止将一个范式表达式解析为两个范式表达式。在步骤S12中,根据解析后的范式表达式对多任务进行调度处理。其中,根据解析后的范式表达式对多任务进行调度处理的步骤具体为若结点个数为0,则处理结束;若结点个数为1,则直接执行该结点,并结束程序; 若结点个数大于等于2,则根据从原范式表达式解析得到的两个范式表达式之间的分隔符串行或者并行调度这两个范式表达式。假设范式表达式为A ; (B, C),D,小括号的优先级高于串行和并行的执行顺序,逗号“,”表示串行执行,分号“;”表示并行执行,且执行顺序为从左到右的顺序。则将该范式表达式从最后一个执行步骤逐步解析为范式表达式D,范式表达式A,范式表达式C和范式表达式B。整个递归按照出栈的顺序执行,即首先执行范式表达式B,再执行范式表达式 C,并得到结果E,而由于范式表达式A与范式表达式(B,C)之间的分隔符为并行标识,因此新建线程执行E,再在主线程中执行范式表达式A,最后才执行范式表达式D,该递归出栈的处理过程与范式表达式定义的执行顺序相同。本发明实施例中,接收并解析定义了任务的执行顺序和串并行关系的范式表达式之后,再根据为范式表达式提供的固定程序对解析后的范式表达式进行多任务的调度处理,由于在任务的先后执行顺序或者串行或者并行关系改变时,只需修改定义了多个任务的执行顺序和串并行关系的的范式表达式,因此节省了重新编写、编译代码的时间,达到快速适应需求变更的目的。实施例二 图2示出了本发明实施例提供的基于范式的多任务调度装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。该基于范式的多任务调度装置可以是运行于通信终端内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到这些通信终端中或者运行于这些通信终端的应用系统中,其中解析范式模块21接收并解析范式表达式,所述范式表达式定义了任务的执行顺序和串并行关系;范式表达式为每个任务定义一个结点,比如,用结点A标识任务A,用结点B标识任务B,确保每一个结点标识一个任务;定义任务间的执行顺序,比如定义从左到右执行范式表达式的顺序,即定义执行范式表达式中各个结点表示的各个任务的顺序,其中,执行范式表达式的先后顺序还可以使用定义的括号改变,确定括号的优先级最高,即定义执行各个任务的顺序与数学上执行只有加减号、括号的四则运算的顺序相似;进一步地,该范式表达式还包括定义在表示两个任务的两个结点之间定义一个分隔符,该分隔符表示串行或者并行执行被隔开的两个结点,比如,用逗号“,”表示串行执行被隔开的两个结点,用分号 “;”表示并行执行被隔开的两个结点。当然,为各个任务定义的结点、任务间的执行顺序以及分隔两个结点的符号可以根据实际情况的改变而改变,此处不作限定。调度范式模块22根据解析范式模块21解析后的范式表达式对多任务进行调度处理。
本发明实施例中,解析范式模块21读取作为单独的配置文件存储起来的范式规则解析接收的范式表达式,该范式表达式定义了任务的执行顺序和串并行关系,调度范式模块22使用为范式表达式提供的固定程序调度解析后的范式表达式,由于在任务的先后执行顺序或者串行或者并行关系改变时,只需修改定义了多个任务的执行顺序和串并行关系的的范式表达式,因此节省了重新编写、编译代码的时间,达到快速适应需求变更的目的。作为本发明的一个实施例,解析范式模块21还包括第一判断单元211,用于判断范式表达式中结点的个数是否为0,若为0,则返回;若不为0,继续判断该接收的范式表达式中结点的个数是否为1,若为1,则直接解析该结点;若不为1,则将该范式表达式解析为两个范式表达式,递归执行上述步骤,直到范式表达式中的结点个数为0。作为本发明的另一个实施例,第一判断单元211还包括第二判断单元2111,用于判断执行解析得到的两个范式表达式的步骤是否为原范式表达式中的最后一个执行步骤, 若是,则将该原范式表达式的最后一个执行步骤解析为两个范式表达式,递归执行上述步骤,直到范式表达式中的结点个数为0。作为本发明的另一个实施例,调度范式模块22还包括区别处理单元221,若结点个数为0,则处理结束;若结点个数为1,则直接执行该结点,并结束程序;若结点个数大于等于2,则根据从原范式表达式解析得到的两个范式表达式之间的分隔符串行或者并行调度这两个范式表达式。 本发明实施例,接收并解析定义了任务的执行顺序和串并行关系的范式表达式之后,再根据为范式表达式提供的固定程序对解析后的范式表达式进行多任务的调度处理, 由于在任务的先后执行顺序或者串行或者并行关系改变时,只需修改定义了多个任务的执行顺序和串并行关系的的范式表达式,因此节省了重新编写、编译代码的时间,达到快速适应需求变更的目的。 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于范式的多任务调度方法,其特征在于,所述方法包括下述步骤接收并解析范式表达式,所述范式表达式定义了任务的执行顺序和串并行关系;根据解析后的范式表达式对多任务进行调度处理。
2.如权利要求1所述的方法,其特征在于,所述接收并解析范式表达式,所述范式表达式定义了任务的执行顺序和串并行关系步骤具体为判断范式表达式中结点的个数是否为0,若为0,则返回;若不为0,继续判断接收的范式表达式中结点的个数是否为1,若为1,则直接解析该结点;若不为1,则将范式表达式解析为两个范式表达式,递归执行上述步骤,直到范式表达式中结点的个数为0。
3.如权利要求2所述的方法,其特征在于,所述若不为1,则将范式表达式解析为两个范式表达式的步骤具体为判断执行解析得到的两个范式表达式的步骤是否为原范式表达式中的最后一个执行步骤,若是,则将原范式表达式的最后一个执行步骤解析为两个范式表达式。
4.如权利要求1所述的方法,其特征在于,所述根据解析后的范式表达式对多任务进行调度处理的步骤具体为若结点个数为0,则处理结束;若结点个数为1,则直接执行该结点,并结束程序;若结点个数大于等于2,则根据从原范式表达式解析得到的两个范式表达式之间的分隔符串行或者并行调度这两个范式表达式。
5.一种基于范式的多任务调度装置,其特征在于,所述装置包括解析范式模块,用于接收并解析范式表达式,所述范式表达式定义了任务的执行顺序和串并行关系;调度范式模块,用于根据解析后的范式表达式对多任务进行调度处理。
6.如权利要求5所述的装置,其特征在于,所述解析范式模块还包括第一判断单元,用于判断范式表达式中结点的个数是否为0,若为0,则返回;若不为0, 继续判断接收的范式表达式中结点的个数是否为1,若为1,则直接解析该结点;若不为1, 则将范式表达式解析为两个范式表达式,递归执行上述步骤,直到范式表达式中的结点个数为0。
7.如权利要求6所述的装置,其特征在于,所述第一判断单元还包括第二判断单元,用于判断执行解析得到的两个范式表达式的步骤是否为原范式表达式中的最后一个执行步骤,若是,则将原范式表达式的最后一个执行步骤解析为两个范式表达式。
8.如权利要求5所述的装置,其特征在于,所述调度范式模块还包括区别处理单元,若结点个数为0,则处理结束;若结点个数为1,则直接执行该结点,并结束程序;若结点个数大于等于2,则根据从原范式表达式解析得到的两个范式表达式之间的分隔符串行或者并行调度这两个范式表达式。
9.一种包含权利要求5至8任一项的基于范式的多任务调度装置的通信终端。
全文摘要
本发明适用于计算机领域,提供了一种基于范式的多任务调度方法、装置及通信终端,所述方法包括下述步骤接收并解析范式表达式,所述范式表达式定义了任务的执行顺序和串并行关系;根据解析后的范式表达式对多任务进行调度处理。本发明接收表示多个任务的先后执行顺序以及任务间的串行和并行关系范式表达式后,根据作为单独的定义文件存储起来的范式规则解析接收的范式表达式,同时根据为范式提供的固定程序执行解析后的范式表达式,由于在任务的先后执行顺序或者串行或者并行关系改变时,只需修改表示任务的范式表达式,因此节省了重新编写、编译代码的时间,达到快速适应需求变更的目的。
文档编号G06F9/48GK102455941SQ20101052505
公开日2012年5月16日 申请日期2010年10月29日 优先权日2010年10月29日
发明者郑学明 申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1