《任务调度方法、装置和终端.pdf》由会员分享,可在线阅读,更多相关《任务调度方法、装置和终端.pdf(18页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104063279A43申请公布日20140924CN104063279A21申请号201310091380X22申请日20130320G06F9/4820060171申请人腾讯科技(深圳)有限公司地址518000广东省深圳市福田区振兴路赛格科技园2栋东403室72发明人母翔74专利代理机构北京三高永信知识产权代理有限责任公司11138代理人罗振安54发明名称任务调度方法、装置和终端57摘要本发明公开了一种任务调度方法、装置和终端,属于安卓平台应用开发领域。所述任务调度方法包括通过调度层接收用户界面UI层发送的任务请求;通过所述调度层发送所述任务请求至任务层,使得所述任务层生。
2、成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;通过所述调度层接收所述请求任务;通过所述调度层调度所述请求任务的执行;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果。51INTCL权利要求书2页说明书11页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书11页附图4页10申请公布号CN104063279ACN104063279A1/2页21一种任务调度方法,其特征在于,所述方法包括通过调度层接收用户界面UI层发送的任务请求;通过所述调度层发送所述任务请求至任务层,使得所述任务层生成对应。
3、于所述任务请求的请求任务并发送所述请求任务至所述调度层;通过所述调度层接收所述请求任务;通过所述调度层调度所述请求任务的执行。2根据权利要求1所述的任务调度方法,其特征在于,所述任务请求携带有所述请求任务的优先级,所述通过所述调度层调度所述请求任务的执行,包括通过所述调度层将所述请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列;通过所述调度层将所述待执行请求任务队列中的各个请求任务逐个投放至线程池中,从而通过操作系统逐个执行所述线程池中的任务;当所述操作系统执行完所述请求任务之后,发送反馈信息至所述UI层。3根据权利要求2所述的任务调度方法,其特征在于,所述通过所述调度层接收所述。
4、请求任务,包括通过所述调度层接收所述请求任务以及所述请求任务对应的任务类型;所述通过所述调度层将所述待执行请求任务队列中的各个请求任务逐个投放至线程池中,包括通过所述调度层将所述待执行请求任务队列中的各个请求任务按照各自的任务类型逐个投放到与所述任务类型对应的线程池中。4根据权利要求3所述的任务调度方法,其特征在于,所述任务类型包括第一任务类型和第二任务类型,所述第一任务类型表示所述请求任务是关键性任务;所述第二任务类型表示所述请求任务是非关键性任务,所述通过所述调度层将所述待执行请求任务队列中的各个请求任务按照各自的任务类型逐个投放到与所述任务类型对应的线程池中,包括通过所述调度层检测所述待。
5、执行请求任务队列中的第I个请求任务的任务类型是所述第一任务类型还是所述第二任务类型;若检测结果为任务类型是所述第一任务类型,则将所述待执行请求任务队列中的第I个请求任务投放至第一线程池中;若检测结果为任务类型是所述第二任务类型,则将所述待执行请求任务队列中的第I个请求任务投放至第二线程池中;其中I为大于等于1的正整数。5根据权利要求2至4任一所述的任务调度方法,其特征在于,所述任务请求携带有所述请求任务的回调函数,所述当所述操作系统执行完所述请求任务之后,发送反馈信息至所述UI层,包括当所述操作系统执行完所述请求任务之后,根据所述回调函数发送反馈信息至所述UI层。6一种任务调度装置,其特征在于。
6、,所述装置包括请求接收模块,用于通过调度层接收用户界面UI层发送的任务请求;权利要求书CN104063279A2/2页3任务生成模块,用于通过所述调度层发送所述请求接收模块接收到的所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;任务接收模块,用于通过所述调度层接收所述任务生成模块生成的所述请求任务;任务调度模块,用于通过所述调度层调度所述请求任务的执行。7根据权利要求6所述的任务调度装置,其特征在于,所述任务请求携带有所述请求任务的优先级,所述任务调度模块,包括任务插入单元,用于通过所述调度层将所述请求任务按照优先级由高到低的顺序插入到已有的。
7、待执行请求任务队列;任务调度单元,用于通过所述调度层将所述任务插入单元得到的所述待执行请求任务队列中的各个请求任务逐个投放至线程池中;任务执行单元,用于通过操作系统逐个执行所述线程池中的任务;信息反馈单元,用于当所述操作系统执行完所述请求任务之后,发送反馈信息至所述UI层。8根据权利要求7所述的任务调度装置,其特征在于,所述任务接收模块,还用于通过所述调度层接收所述请求任务以及所述请求任务对应的任务类型;所述任务调度单元,还用于通过所述调度层将所述待执行请求任务队列中的各个请求任务按照各自的任务类型逐个投放到与所述任务类型对应的线程池中。9根据权利要求8所述的任务调度装置,其特征在于,所述任务。
8、类型包括第一任务类型和第二任务类型,所述第一任务类型表示所述请求任务是关键性任务;所述第二任务类型表示所述请求任务是非关键性任务,所述任务调度单元,包括任务检测子单元,用于通过所述调度层检测所述待执行请求任务队列中的第I个请求任务的任务类型是所述第一任务类型还是所述第二任务类型;第一结果子单元,用于若所述任务检测子单元的检测结果为任务类型是所述第一任务类型,则将所述待执行请求任务队列中的第I个请求任务投放至第一线程池中;第二结果子单元,用于若所述任务检测子单元的检测结果为任务类型是所述第二任务类型,则将所述待执行请求任务队列中的第I个请求任务投放至第二线程池中;其中I为大于等于1的正整数。10。
9、根据权利要求7至9任一所述的任务调度装置,其特征在于,所述任务请求携带有所述请求任务的回调函数,所述信息反馈单元,还用于当所述操作系统执行完所述请求任务之后,根据所述回调函数发送反馈信息至所述UI层。11一种终端,其特征在于,其包括如权利要求5至10任一所述的任务调度装置。权利要求书CN104063279A1/11页4任务调度方法、装置和终端技术领域0001本发明涉及安卓平台应用开发领域,特别涉及一种任务调度方法、装置和终端。背景技术0002UI(USERINTERFACE,用户界面)设计是安卓操作系统的程序开发中最为重要的一个组成部分。0003在实际应用中,当终端接收到来自UI的任务请求时,。
10、终端就需要执行任务的调度。现有方法提供了两种任务调度方案,第一种方案包括终端接收来自UI的任务请求;终端产生与UI的任务请求对应的请求任务;终端将请求任务投放至指定线程池中,从而依次执行指定线程池中的各个请求任务;第二种方案包括接收来自UI的任务请求,并为该任务请求对应的请求任务创建一个线程,从而直接运行该线程。0004在实现本发明的过程中,发明人发现现有技术至少存在如下问题0005在第一种方案中,当UI需要请求多个任务时,终端会将生成的多个请求任务依次投放到同一个线程池中,从而按照线程池中各个请求任务的排序依次执行,这就导致比较重要的请求任务可能排在线程池中较后的位置,从而终端不能及时处理该。
11、请求任务,也即终端不能对各个请求任务进行统一调度,任务调度不合理;在第二种方案中,由于在接收到UI任务请求之后直接为请求任务创建一个线程来运行对应的请求任务,所以当UI有多个任务请求时,可能会可能存在比较重要的请求任务一直得不到执行,也即终端不能对各个请求任务进行统一调度,任务调度不合理。发明内容0006为了解决现有技术中任务调度不合理的问题,本发明实施例提供了一种任务调度方法、装置和终端。所述技术方案如下0007第一方面,提供了一种任务调度方法,所述方法包括0008通过调度层接收用户界面UI层发送的任务请求;0009通过所述调度层发送所述任务请求至任务层,使得所述任务层生成对应于所述任务请求。
12、的请求任务并发送所述请求任务至所述调度层;0010通过所述调度层接收所述请求任务;0011通过所述调度层调度所述请求任务的执行。0012第二方面,提供了一种任务调度装置,所述任务调度装置包括0013请求接收模块,用于通过调度层接收用户界面UI层发送的任务请求;0014任务生成模块,用于通过所述调度层发送所述请求接收模块接收到的所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;0015任务接收模块,用于通过所述调度层接收所述任务生成模块生成的所述请求任务;说明书CN104063279A2/11页50016任务调度模块,用于通过所述调度层调度所述请。
13、求任务的执行。0017第三方面,提供了一种终端,所述终端包括上述所述的任务调度装置。0018本发明实施例提供的技术方案的有益效果是0019通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请。
14、求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。附图说明0020为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0021图1是本发明实施例一提供的任务调度方法的方法流程图;0022图2是本发明实施例二提供的任务调度方法的方法流程图;0023图3是本发明实施例二。
15、提供的任务调度方法调度时的结构示意图;0024图4是本发明实施例二提供的调度层将请求任务投放至线程池中的结构示意图;0025图5是本发明实施例三提供的任务调度方法的方法流程图;0026图6是本发明实施例四提供的任务调度装置的结构方框图;0027图7是本发明实施例五提供的任务调度装置的结构方框图;0028图8是本发明实施例六提供的任务调度装置的结构方框图。具体实施方式0029为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得。
16、的所有其它实施例,都属于本发明保护的范围。0030实施例一0031请参考图1,其示出了本发明实施例一提供的任务调度方法的方法流程图,该任务调度方法可以用于基于安卓平台的终端中,该任务调度方法,可以包括0032步骤101,通过调度层接收用户界面UI层发送的任务请求;0033步骤102,通过调度层发送任务请求至任务层,使得任务层生成对应于任务请求的请求任务并发送请求任务至调度层;0034步骤103,通过调度层接收请求任务;说明书CN104063279A3/11页60035步骤104,通过调度层调度请求任务的执行。0036综上所述,本实施例提供的任务调度方法,通过使用调度层接收UI层的任务请求,并且。
17、通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从。
18、而降低开发成本的效果。0037实施例二0038请参考图2,其示出了本发明实施例二提供的任务调度方法的方法流程图,该任务调度方法可以用于基于安卓平台的终端中,该任务调度方法,可以包括0039步骤201,通过调度层接收用户界面UI层发送的任务请求;0040在基于安卓平台的UI设计中,设计人员可以按照应用程序中各部分实现的功能,将应用程序划分成UI层、任务层和调度层三层,其中,UI层用于实现UI显示、任务层用于生成UI层任务请求的请求任务,调度层用于实现对UI层发送的任务请求的转发,并实现对请求任务的调度。具体的,当终端通过UI层发送一个任务请求时,终端可以通过调度层接收UI层发送的任务请求。004。
19、1其中,为了使得终端可以通过操作系统按照UI的任务请求所对应的各请求任务的重要性依次执行各请求任务,终端可以通过在UI层发送的任务请求中携带该任务请求对应的请求任务的优先级。0042比如,在UI设计时,设计人员通过程序编码将A、B、C、D、E、F、G7个任务的优先级设定为ABCDEFG,并且为每个任务的优先级分别设置一个标识如1、2、3、4、5、6和7,从而在终端通过UI层发送任务请求时,通过任务请求携带该任务请求对应的请求任务的优先级。0043需要说明的是,本实施例只是以通过编程的方式为各请求任务设定优先级为例,在实际实现时还可以通过接口写入或者系统默认的方式为各请求任务设定优先级,本实施例。
20、在此不再赘述。并且,本实施例也只是以为不同优先级设定不同标识为例,在具体实现时,还可以通过其他方式来表征各请求任务的优先级,本实施例在此不再一一举例。0044步骤202,通过调度层发送任务请求至任务层,使得任务层生成对应于任务请求的请求任务并发送请求任务至调度层;0045在终端通过调度层接收到UI层发送的任务请求之后,为了让任务层可以相应的根据任务请求生成对应的请求任务,终端可以通过调度层发送任务请求至任务层,从而在终端通过任务层接收到任务请求之后,终端可以通过任务层根据任务请求生成对应的请求任务,并且在生成请求任务之后反馈请求任务至调度层,具体流程请参考图3。0046优选地,由于终端可以通过。
21、UI层在不同时刻请求相同内容的请求任务,所以为了实现对不同时刻的内容相同的请求任务的区分,在终端通过任务层生成对应于任务请求的请求任务时,终端可以通过任务层为每个请求任务分配一个ID。具体的,终端可以通过任务说明书CN104063279A4/11页7层将接收到任务请求的时间设置为对应的请求任务的ID。而为了区分同一时间的不同请求任务,终端还可以通过任务层将接收到任务请求的时间和一个随机数设置为对应的请求任务的ID,本实施例只是以上述方式生成请求任务的ID为例,在具体实现时,还可以通过其他方式为请求任务分配一个标识身份的ID,本实施例对此并不做限定。0047在实际实现时,为了方便设计人员后期对系。
22、统的维护,通过更改较少的程序代码来实现新增任务或者更改任务,终端可以通过任务层使用工厂生产的方法来生成对应于任务请求的请求任务。0048步骤203,通过调度层接收请求任务;0049在终端通过任务层生成请求任务并且反馈请求任务至调度层之后,终端可以通过调度层相应的接收到请求任务。0050步骤204,通过调度层将请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列;0051为了使得操作系统能够按照请求任务的优先级依次执行各请求任务,在终端通过调度层接收到请求任务之后,终端可以通过调度层将请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列中。0052具体的,由于终端可以通过UI。
23、层不断的发送任务请求,也即终端可以通过调度层不断的接收到任务层生成的对应于各任务请求的请求任务,所以为了使得高优先级的请求任务得到的优先执行,终端可以通过调度层将接收到的请求任务按照优先级进行排序,从而生成一个待执行请求任务队列,并且在每次接收到一个新的请求任务时,终端可以通过调度层将请求任务按照优先级的高低插入到待执行请求任务队列中。0053比如,终端调度层的待执行请求任务队列中有A、B、E、F四个请求任务,终端通过调度层接收到的一个新的请求任务为D,则由于终端调度层接收到的请求任务D的优先级为4,请求任务A、B、E和F的优先级分别为1、2、5和6,所以终端可以通过调度层将请求任务D插入到待。
24、执行请求任务队列中,从而生成顺序为A、B、D、E、F的一个新的待执行请求任务队列。类似的,如果终端通过调度层接收到的请求任务为G,而请求任务G的优先级高于请求任务的优先级,则此时,终端可以通过调度层将请求任务按照优先级的顺序插入到待执行请求任务队列中,从而生成G、A、B、E、F的新的待执行请求任务队列,在此本实施例不再赘述。0054需要说明的是,当终端通过任务层为请求任务分配ID时,终端可以通过调度层将请求任务按照ID进行区分,并按照优先级由高到低的顺序插入到已有的待执行请求任务队列,本实施例在此不再赘述。0055步骤205,通过调度层将待执行请求任务队列中的各个请求任务逐个投放至线程池中,从。
25、而通过操作系统逐个执行线程池中的任务;0056在终端通过调度层将请求任务按照优先级由高到低的顺序插入到待执行请求任务队列中以后,终端可以通过调度层将待执行请求任务队列中的各请求任务逐个投放至线程池中,从而通过操作系统逐个执行线程池中的任务。0057具体的,终端通过调度层将请求任务插入到待执行任务队列之后得到的新的待执行请求任务队列为A、B、D、E、F,则终端可以通过调度层将请求任务A、B、D、E和F逐次投放至线程池中,如果线程池是可以包含两个线程的线程池,则请求任务D、E和F将在堆栈中说明书CN104063279A5/11页8进行排队等候,也即可以相应的生成如图4所示的堆栈,从而终端可以通过操。
26、作系统依次调度执行A、B、D、E和F的请求任务。0058需要说明的是,如果终端可以通过操作系统同时运行两个线程,则终端可以通过操作系统每次从线程池中调用两个请求任务,从而同时执行两个请求任务,并且当操作系统执行完其中一个请求任务之后,终端可以通过操作系统从线程池的堆栈中取下一个请求任务进行执行,在此本实施例不再赘述。0059步骤206,当操作系统执行完请求任务之后,发送反馈信息至UI层。0060为了告知UI层它发送的任务请求对应的请求任务的执行情况,在终端通过操作系统执行完请求任务之后,终端可以发送反馈信息至UI层。0061在实际实现时,终端通过在UI层发送的任务请求中携带一个对应于任务请求的。
27、回调函数,从而使得在操作系统执行完该任务请求对应的请求任务之后,直接通过回调函数告知UI层该请求任务已经执行完成,本实施例对此并不做限定。0062综上所述,本实施例提供了的任务调度方法,通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度。
28、层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。0063实施例三0064请参考图5,请示出了本发明实施例三提供的任务调度方法的方法流程图,该任务调度方法可以用于基于安卓平台的终端中,与上述实施例不同的是,本实施例中终端可以通过任务层生成对应于请求任务的任务类型,从而终端可以通过调度层按照各请求任务的任务类型将请求任务投放到与任务类型对应的线程池中,该任务调度方法,可以包括0065步骤301,通过调。
29、度层接收用户界面UI层发送的任务请求;0066在基于安卓平台的UI设计中,设计人员可以按照应用程序中各部分实现的功能,将应用程序划分成UI层、任务层和调度层三层,其中,UI层用于实现UI显示、任务层用于生成UI层任务请求的请求任务,调度层用于实现对UI层发送的任务请求的转发,并实现对请求任务的调度。具体的,当终端通过UI层发送一个任务请求时,终端可以通过调度层接收UI层发送的任务请求。0067其中,为了使得终端可以通过操作系统按照UI的任务请求所对应的各请求任务的重要性依次执行各请求任务,终端可以通过在UI层发送的任务请求中携带该任务请求对应的请求任务的优先级。0068步骤302,通过调度层发。
30、送任务请求至任务层,使得任务层生成对应于任务请求的请求任务并发送请求任务至调度层;0069在终端通过调度层接收到UI层发送的任务请求之后,为了让任务层可以相应的根据任务请求生成对应的请求任务,终端可以通过调度层发送任务请求至任务层,从而在说明书CN104063279A6/11页9终端通过任务层接收到任务请求之后,终端可以通过任务层根据任务请求生成对应的请求任务,并且在生成请求任务之后反馈请求任务至调度层。0070优选地,由于终端可以通过UI层在不同时刻请求相同内容的请求任务,所以为了实现对不同时刻的内容相同的请求任务的区分,在终端通过任务层生成对应于任务请求的请求任务时,终端可以通过任务层为每。
31、个请求任务分配一个ID。具体的,终端可以通过任务层将接收到任务请求的时间设置为对应的请求任务的ID。而为了区分同一时间的不同请求任务,终端还可以通过任务层将接收到任务请求的时间和一个随机数设置为对应的请求任务的ID,本实施例只是以上述方式生成请求任务的ID为例,在具体实现时,还可以通过其他方式为请求任务分配一个标识身份的ID,本实施例对此并不做限定。0071更为优选地,为了使得终端可以通过操作系统在按照各个请求任务的优先级顺序执行的同时可以按照各个请求任务的任务类型来执行,在终端通过任务层生成对应于任务请求的请求任务的同时,终端可以通过任务层生成对应于请求任务的任务类型。其中,终端可以通过任务。
32、层根据请求任务本身属性如下载数据或者获取图片、运行时占用的时间以及运行时占用资源三个方面来生成请求任务的任务类型。0072具体的,终端通过任务层生成请求任务的任务类型的方法可以包括0073第一,终端通过任务层分别计算请求任务的本身属性、运行时占用的时间以及运行时占用的资源的得分;0074由于终端通过ID层发送的任务请求可以是获取图片或者下载数据,而对于ID显示来说,图片显示带来的用户体验远高于数据下载的用户体验,所以终端可以通过任务层根据请求任务的本身属性设置不同的得分,如获取图片的得分为9分、下载数据的得分为5分;同时由于一下请求任务的运行时间较长,如果操作系统一直运行该请求任务,那么其他运。
33、行时间很短的请求任务需要一直处于等待状态,严重影响请求任务的执行效率,所以终端可以通过任务层根据请求任务的运行时占用的时间分配不同的得分,如运行时占用时间越长的请求任务的得分越小,运行时占用时间越短的请求任务的得分越大;另外,由于运行时占用资源较多的请求任务在运行时,操作系统不能或者以极慢的速度响应终端中的其他请求,所以终端可以通过任务层根据运行时占用的资源的不同而分配不同的得分,如为占用资源多的请求任务分配较小的得分,而占用资源少的请求任务分配较多的得分。0075第二,终端通过任务层为请求任务的本身属性、运行时占用的时间以及运行时占用的资源分配对应的权值;0076在终端通过任务层生成请求任务。
34、的任务类型时,终端还可以通过任务层为请求任务的本身属性、运行时占用的时间以及运行时占用的资源分配对应的权值。0077第三,终端通过任务层根据请求任务的本身属性、运行时占用的时间以及运行时占用的资源的得分以及各自对应的权值计算该请求任务的得分,并根据得分生成该请求任务的任务类型。0078终端通过任务层得到请求任务的本身属性、运行时占用的时间以及运行时占用的资源的得分以及各自对应的权值以后,可以根据得分以及对应的权值计算请求任务的总得分,从而当总得分大于预设阈值时,可以认为该请求任务是关键性任务,终端可以通过任务层将该请求任务的任务类型设置为第一任务类型;当总得分小于预设阈值时,可以认为该请求任务。
35、是非关键性任务,终端可以通过任务层将该请求任务的任务类型设置为第二任务说明书CN104063279A7/11页10类型。0079在终端通过任务层生成对应于任务请求的请求任务以及对应的任务类型之后,终端可以通过任务层发送请求任务以及对应的任务类型至调度层。0080需要补充说明的是,在实际实现时,为了方便设计人员后期对系统的维护,通过更改较少的程序代码来实现新增任务或者更改任务,终端可以通过任务层使用工厂生产的方法来生成对应于任务请求的请求任务。0081步骤303,通过调度层接收请求任务以及请求任务对应的任务类型;0082在终端通过任务层发送请求任务以及对应的任务类型至调度层之后,终端可以通过调度。
36、层相应的接收请求任务以及对应的任务类型。0083步骤304,通过调度层将请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列;0084为了使得操作系统能够按照请求任务的优先级依次执行各请求任务,在终端通过调度层接收到请求任务之后,终端可以通过调度层将请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列中。0085需要说明的是,当终端通过任务层为请求任务分配ID时,终端可以通过调度层将请求任务按照ID进行区分,并按照优先级由高到低的顺序插入到已有的待执行请求任务队列,本实施例在此不再赘述。0086步骤305,通过调度层将待执行请求任务队列中的各个请求任务按照各自的任务类型逐个。
37、投放到与任务类型对应的线程池中;0087在终端通过调度层得到待执行请求任务队列之后,终端可以通过调度层将待执行请求任务队列中的各个请求任务按照各自的任务类型逐个投放到与任务类型对应的线程池中。0088具体的,在终端将待执行请求任务队列中的第I个请求任务投放至线程池时,终端可以通过调度层检测待执行请求任务队列中的第个请求任务是第一任务类型还是第二任务类型;0089当终端通过调度层检测到待执行任务队列中的第I个请求任务的任务类型是第一任务类型,则说明该请求任务是关键性任务,运行时占用时间较短或者希望操作系统尽快执行,所以终端可以通过调度层将该请求任务投放到第一线程池中。0090当终端通过调度层检测。
38、到待执行任务队列中的第I个请求任务的任务类型是第二任务类型,则说明该请求任务是非关键性任务,运行时占用时间较长或者即使不立即执行对用户体验也没有过多的影响,所以终端可以通过调度层将请求任务投放到第二线程池中。0091在终端通过调度层将请求任务投放至第一线程池或者第二线程池中以后,终端可以通过操作系统同时运行两个线程池中的任务,从而避免了关键性任务需要等待非关键性任务执行完才能执行,请求任务的执行效率低的问题。0092步骤306,当操作系统执行完请求任务之后,发送反馈信息至UI层。0093为了告知UI层它发送的任务请求对应的请求任务的执行情况,在终端通过操作系统执行完请求任务之后,终端可以发送反。
39、馈信息至UI层。0094在实际实现时,终端通过在UI层发送的任务请求中携带一个对应于任务请求的说明书CN104063279A108/11页11回调函数,从而使得在操作系统执行完该任务请求对应的请求任务之后,直接通过回调函数告知UI层该请求任务已经执行完成,本实施例对此并不做限定。0095综上所述,本实施例提供的任务调度方法,通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而。
40、使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。0096实施例四0097请参考图6,其示出了本发明实施例四提供的任务调度装置的结构方框图,该任务调度装置可以实现为基于安卓平台的终端的全部或者部分,该任务调度装置,可以包括请求接收模块410,任务生成模块420,。
41、任务接收模块430和任务调度模块440;0098请求接收模块410,用于通过调度层接收用户界面UI层发送的任务请求;0099任务生成模块420,用于通过所述调度层发送所述请求接收模块410接收到的所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;0100任务接收模块430,用于通过所述调度层接收所述任务生成模块生成的所述请求任务;0101任务调度模块440,用于通过所述调度层调度所述请求任务的执行。0102综上所述,本实施例提供的任务调度装置,通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对。
42、应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。0103实施例五0104请参考图7,其示。
43、出了本发明实施例五提供的任务调度装置的结构方框图,该任务调度装置可以实现为基于安卓平台的终端的全部或者部分,该任务调度装置,可以包括请求接收模块410,任务生成模块420,任务接收模块430和任务调度模块440;0105请求接收模块410,用于通过调度层接收用户界面UI层发送的任务请求;0106任务生成模块420,用于通过所述调度层发送所述请求接收模块410接收到的所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;说明书CN104063279A119/11页120107任务接收模块430,用于通过所述调度层接收所述任务生成模块生成的所述请求任务。
44、;0108任务调度模块440,用于通过所述调度层调度所述请求任务的执行。0109进一步地,所述任务请求携带有所述请求任务的优先级,所述任务调度模块440,可以包括任务插入单元441,任务调度单元442,任务执行单元443和信息反馈单元444;0110任务插入单元441,用于通过所述调度层将所述请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列;0111任务调度单元442,用于通过所述调度层将所述任务插入单元得到的所述待执行请求任务队列中的各个请求任务逐个投放至线程池中;0112任务执行单元443,用于通过操作系统逐个执行所述线程池中的任务;0113信息反馈单元444,用于当所述操作。
45、系统执行完所述请求任务之后,发送反馈信息至所述UI层。0114进一步地,所述任务请求携带有所述请求任务的回调函数,0115所述信息反馈单元444,还用于当所述操作系统执行完所述请求任务之后,根据所述回调函数发送反馈信息至所述UI层。0116综上所述,本实施例提供的任务调度装置,通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请求的顺序执行,而比。
46、较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。0117实施例六0118请参考图8,其示出了本发明实施例六提供的任务调度装置的结构方框图,该任务调度装置可以实现为基于安卓平台的终端中的全部或者部分,该任务调度装置,可以包括请求接收模块410,任务生成模块420,任务接收模块430和任务调度模块440;011。
47、9请求接收模块410,用于通过调度层接收用户界面UI层发送的任务请求;0120任务生成模块420,用于通过所述调度层发送所述请求接收模块410接收到的所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;0121任务接收模块430,用于通过所述调度层接收所述任务生成模块生成的所述请求任务;0122任务调度模块440,用于通过所述调度层调度所述请求任务的执行。0123进一步地,所述任务请求携带有所述请求任务的优先级,所述任务调度模块440,可以包括任务插入单元441,任务调度单元442,任务执行单元443和信息反馈单元444;0124任务插入单元44。
48、1,用于通过所述调度层将所述请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列;说明书CN104063279A1210/11页130125任务调度单元442,用于通过所述调度层将所述任务插入单元得到的所述待执行请求任务队列中的各个请求任务逐个投放至线程池中;0126任务执行单元443,用于通过操作系统逐个执行所述线程池中的任务;0127信息反馈单元444,用于当所述操作系统执行完所述请求任务之后,发送反馈信息至所述UI层。0128进一步地,所述任务接收模块430,还用于通过所述调度层接收所述请求任务以及所述请求任务对应的任务类型;0129所述任务调度单元442,还用于通过所述调度层。
49、将所述待执行请求任务队列中的各个请求任务按照各自的任务类型逐个投放到与所述任务类型对应的线程池中。0130进一步地,所述任务类型包括第一任务类型和第二任务类型,所述第一任务类型表示所述请求任务是关键性任务;所述第二任务类型表示所述请求任务是非关键性任务,所述任务调度单元,包括任务检测子单元510,第一结果子单元520和第二结果子单元530;0131任务检测子单元510,用于通过所述调度层检测所述待执行请求任务队列中的第I个请求任务的任务类型是所述第一任务类型还是所述第二任务类型;0132第一结果子单元520,用于若所述任务检测子单元510的检测结果为为任务类型是所述第一任务类型,则将所述待执行请求任务队列中的第I个请求任务投放至第一线程池中;0133第二结果子单元530,用于若所述任务检测子单元510的检测结果为任务类型是所述第二任务类型,则将所述待执行请求任务队列中的第I个请求任务投放至第二线程池中;0134其中I为大于等于1的正整数。0135进一步地,所述任务请求携带有所述请求任务的回调函数,0136所述信息反馈单元444,还用于当所述操作系统执行完所述请求任务之后,根据所述回调函数发送反馈信息至所述UI层。0137综上所述,本实施例提供的任务调度装置,通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成。