任务调度方法、装置和终端的制作方法

文档序号:6500942阅读:136来源:国知局
任务调度方法、装置和终端的制作方法
【专利摘要】本发明公开了一种任务调度方法、装置和终端,属于安卓平台应用开发领域。所述任务调度方法包括:通过调度层接收用户界面UI层发送的任务请求;通过所述调度层发送所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;通过所述调度层接收所述请求任务;通过所述调度层调度所述请求任务的执行;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果。
【专利说明】任务调度方法、装置和终端

【技术领域】
[0001] 本发明涉及安卓平台应用开发领域,特别涉及一种任务调度方法、装置和终端。

【背景技术】
[0002] Π (User Interface,用户界面)设计是安卓操作系统的程序开发中最为重要的一 个组成部分。
[0003] 在实际应用中,当终端接收到来自UI的任务请求时,终端就需要执行任务的调 度。现有方法提供了两种任务调度方案,第一种方案包括:终端接收来自UI的任务请求;终 端产生与UI的任务请求对应的请求任务;终端将请求任务投放至指定线程池中,从而依次 执行指定线程池中的各个请求任务;第二种方案包括:接收来自UI的任务请求,并为该任 务请求对应的请求任务创建一个线程,从而直接运行该线程。
[0004] 在实现本发明的过程中,发明人发现现有技术至少存在如下问题:
[0005] 在第一种方案中,当Π 需要请求多个任务时,终端会将生成的多个请求任务依次 投放到同一个线程池中,从而按照线程池中各个请求任务的排序依次执行,这就导致比较 重要的请求任务可能排在线程池中较后的位置,从而终端不能及时处理该请求任务,也即 终端不能对各个请求任务进行统一调度,任务调度不合理;在第二种方案中,由于在接收到 UI任务请求之后直接为请求任务创建一个线程来运行对应的请求任务,所以当UI有多个 任务请求时,可能会可能存在比较重要的请求任务一直得不到执行,也即终端不能对各个 请求任务进行统一调度,任务调度不合理。


【发明内容】

[0006] 为了解决现有技术中任务调度不合理的问题,本发明实施例提供了一种任务调度 方法、装置和终端。所述技术方案如下:
[0007] 第一方面,提供了一种任务调度方法,所述方法包括:
[0008] 通过调度层接收用户界面Π 层发送的任务请求;
[0009] 通过所述调度层发送所述任务请求至任务层,使得所述任务层生成对应于所述任 务请求的请求任务并发送所述请求任务至所述调度层;
[0010] 通过所述调度层接收所述请求任务;
[0011] 通过所述调度层调度所述请求任务的执行。
[0012] 第二方面,提供了一种任务调度装置,所述任务调度装置包括:
[0013] 请求接收模块,用于通过调度层接收用户界面Π 层发送的任务请求;
[0014] 任务生成模块,用于通过所述调度层发送所述请求接收模块接收到的所述任务请 求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至 所述调度层;
[0015] 任务接收模块,用于通过所述调度层接收所述任务生成模块生成的所述请求任 务;
[0016] 任务调度模块,用于通过所述调度层调度所述请求任务的执行。
[0017] 第三方面,提供了一种终端,所述终端包括上述所述的任务调度装置。
[0018] 本发明实施例提供的技术方案的有益效果是:
[0019] 通过使用调度层接收Π 层的任务请求,并且通过调度层将任务请求发送至任务 层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过 调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间 投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请 求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效 率的低的问题;达到了可以通过调度层统一调度Π 层发送的各任务请求从而调度各任务 请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将Π 任务请求、请求 任务的生成以及调度操作由Π 层、任务层和调度层分别执行,达到了降低Π 层的请求和业 务之间的耦合度,从而降低开发成本的效果。

【专利附图】

【附图说明】
[0020] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。
[0021] 图1是本发明实施例一提供的任务调度方法的方法流程图;
[0022] 图2是本发明实施例二提供的任务调度方法的方法流程图;
[0023] 图3是本发明实施例二提供的任务调度方法调度时的结构示意图;
[0024] 图4是本发明实施例二提供的调度层将请求任务投放至线程池中的结构示意图;
[0025] 图5是本发明实施例三提供的任务调度方法的方法流程图;
[0026] 图6是本发明实施例四提供的任务调度装置的结构方框图;
[0027] 图7是本发明实施例五提供的任务调度装置的结构方框图;
[0028] 图8是本发明实施例六提供的任务调度装置的结构方框图。

【具体实施方式】
[0029] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进 一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施 例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的 所有其它实施例,都属于本发明保护的范围。
[0030] 实施例一
[0031] 请参考图1,其示出了本发明实施例一提供的任务调度方法的方法流程图,该任务 调度方法可以用于基于安卓平台的终端中,该任务调度方法,可以包括:
[0032] 步骤101,通过调度层接收用户界面Π 层发送的任务请求;
[0033] 步骤102,通过调度层发送任务请求至任务层,使得任务层生成对应于任务请求的 请求任务并发送请求任务至调度层;
[0034] 步骤103,通过调度层接收请求任务;
[0035] 步骤104,通过调度层调度请求任务的执行。
[0036] 综上所述,本实施例提供的任务调度方法,通过使用调度层接收Π 层的任务请 求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求 任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行; 解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调 度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求 任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调 度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一 管理的效果;并且通过将Π 任务请求、请求任务的生成以及调度操作由Π 层、任务层和调 度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
[0037] 实施例二
[0038] 请参考图2,其示出了本发明实施例二提供的任务调度方法的方法流程图,该任务 调度方法可以用于基于安卓平台的终端中,该任务调度方法,可以包括:
[0039] 步骤201,通过调度层接收用户界面Π 层发送的任务请求;
[0040] 在基于安卓平台的π设计中,设计人员可以按照应用程序中各部分实现的功能, 将应用程序划分成UI层、任务层和调度层三层,其中,UI层用于实现UI显示、任务层用于 生成UI层任务请求的请求任务,调度层用于实现对UI层发送的任务请求的转发,并实现对 请求任务的调度。具体的,当终端通过Π 层发送一个任务请求时,终端可以通过调度层接 收Π 层发送的任务请求。
[0041] 其中,为了使得终端可以通过操作系统按照Π 的任务请求所对应的各请求任务 的重要性依次执行各请求任务,终端可以通过在Π 层发送的任务请求中携带该任务请求 对应的请求任务的优先级。
[0042] 比如,在Π 设计时,设计人员通过程序编码将'A、B、C、D、E、F、G' 7个任务的优先 级设定为A>B>C>D>E>F>G,并且为每个任务的优先级分别设置一个标识如1、2、3、4、5、6和 7,从而在终端通过UI层发送任务请求时,通过任务请求携带该任务请求对应的请求任务 的优先级。
[0043] 需要说明的是,本实施例只是以通过编程的方式为各请求任务设定优先级为例, 在实际实现时还可以通过接口写入或者系统默认的方式为各请求任务设定优先级,本实施 例在此不再赘述。并且,本实施例也只是以为不同优先级设定不同标识为例,在具体实现 时,还可以通过其他方式来表征各请求任务的优先级,本实施例在此不再--举例。
[0044] 步骤202,通过调度层发送任务请求至任务层,使得任务层生成对应于任务请求的 请求任务并发送请求任务至调度层;
[0045] 在终端通过调度层接收到Π 层发送的任务请求之后,为了让任务层可以相应的 根据任务请求生成对应的请求任务,终端可以通过调度层发送任务请求至任务层,从而在 终端通过任务层接收到任务请求之后,终端可以通过任务层根据任务请求生成对应的请求 任务,并且在生成请求任务之后反馈请求任务至调度层,具体流程请参考图3。
[0046] 优选地,由于终端可以通过Π 层在不同时刻请求相同内容的请求任务,所以为了 实现对不同时刻的内容相同的请求任务的区分,在终端通过任务层生成对应于任务请求的 请求任务时,终端可以通过任务层为每个请求任务分配一个ID。具体的,终端可以通过任务 层将接收到任务请求的时间设置为对应的请求任务的ID。而为了区分同一时间的不同请求 任务,终端还可以通过任务层将接收到任务请求的时间和一个随机数设置为对应的请求任 务的ID,本实施例只是以上述方式生成请求任务的ID为例,在具体实现时,还可以通过其 他方式为请求任务分配一个标识身份的ID,本实施例对此并不做限定。
[0047] 在实际实现时,为了方便设计人员后期对系统的维护,通过更改较少的程序代码 来实现新增任务或者更改任务,终端可以通过任务层使用工厂生产的方法来生成对应于任 务请求的请求任务。
[0048] 步骤203,通过调度层接收请求任务;
[0049] 在终端通过任务层生成请求任务并且反馈请求任务至调度层之后,终端可以通过 调度层相应的接收到请求任务。
[0050] 步骤204,通过调度层将请求任务按照优先级由高到低的顺序插入到已有的待执 行请求任务队列;
[0051] 为了使得操作系统能够按照请求任务的优先级依次执行各请求任务,在终端通过 调度层接收到请求任务之后,终端可以通过调度层将请求任务按照优先级由高到低的顺序 插入到已有的待执行请求任务队列中。
[0052] 具体的,由于终端可以通过Π 层不断的发送任务请求,也即终端可以通过调度层 不断的接收到任务层生成的对应于各任务请求的请求任务,所以为了使得高优先级的请求 任务得到的优先执行,终端可以通过调度层将接收到的请求任务按照优先级进行排序,从 而生成一个待执行请求任务队列,并且在每次接收到一个新的请求任务时,终端可以通过 调度层将请求任务按照优先级的高低插入到待执行请求任务队列中。
[0053] 比如,终端调度层的待执行请求任务队列中有'A、B、E、F'四个请求任务,终端通 过调度层接收到的一个新的请求任务为D,则由于终端调度层接收到的请求任务D的优先 级为4,请求任务A、B、E和F的优先级分别为1、2、5和6,所以终端可以通过调度层将请求 任务D插入到待执行请求任务队列中,从而生成顺序为'A、B、D、E、F'的一个新的待执行请 求任务队列。类似的,如果终端通过调度层接收到的请求任务为G,而请求任务G的优先级 高于请求任务A的优先级,则此时,终端可以通过调度层将请求任务G按照优先级的顺序 插入到待执行请求任务队列中,从而生成'G、A、B、E、F'的新的待执行请求任务队列,在此 本实施例不再赘述。
[0054] 需要说明的是,当终端通过任务层为请求任务分配ID时,终端可以通过调度层将 请求任务按照ID进行区分,并按照优先级由高到低的顺序插入到已有的待执行请求任务 队列,本实施例在此不再赘述。
[0055] 步骤205,通过调度层将待执行请求任务队列中的各个请求任务逐个投放至线程 池中,从而通过操作系统逐个执行线程池中的任务;
[0056] 在终端通过调度层将请求任务按照优先级由高到低的顺序插入到待执行请求任 务队列中以后,终端可以通过调度层将待执行请求任务队列中的各请求任务逐个投放至线 程池中,从而通过操作系统逐个执行线程池中的任务。
[0057] 具体的,终端通过调度层将请求任务插入到待执行任务队列之后得到的新的待执 行请求任务队列为'A、B、D、E、F',则终端可以通过调度层将请求任务A、B、D、E和F逐次投 放至线程池中,如果线程池是可以包含两个线程的线程池,则请求任务D、E和F将在堆栈中 进行排队等候,也即可以相应的生成如图4所示的堆栈,从而终端可以通过操作系统依次 调度执行A、B、D、E和F的请求任务。
[0058] 需要说明的是,如果终端可以通过操作系统同时运行两个线程,则终端可以通过 操作系统每次从线程池中调用两个请求任务,从而同时执行两个请求任务,并且当操作系 统执行完其中一个请求任务之后,终端可以通过操作系统从线程池的堆栈中取下一个请求 任务进行执行,在此本实施例不再赘述。
[0059] 步骤206,当操作系统执行完请求任务之后,发送反馈信息至Π 层。
[0060] 为了告知π层它发送的任务请求对应的请求任务的执行情况,在终端通过操作 系统执行完请求任务之后,终端可以发送反馈信息至Π 层。
[0061] 在实际实现时,终端通过在Π 层发送的任务请求中携带一个对应于任务请求的 回调函数,从而使得在操作系统执行完该任务请求对应的请求任务之后,直接通过回调函 数告知Π 层该请求任务已经执行完成,本实施例对此并不做限定。
[0062] 综上所述,本实施例提供了的任务调度方法,通过使用调度层接收Π 层的任务请 求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求 任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行; 解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调 度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求 任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调 度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一 管理的效果;并且通过将Π 任务请求、请求任务的生成以及调度操作由Π 层、任务层和调 度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
[0063] 实施例三
[0064] 请参考图5,请示出了本发明实施例三提供的任务调度方法的方法流程图,该任务 调度方法可以用于基于安卓平台的终端中,与上述实施例不同的是,本实施例中终端可以 通过任务层生成对应于请求任务的任务类型,从而终端可以通过调度层按照各请求任务的 任务类型将请求任务投放到与任务类型对应的线程池中,该任务调度方法,可以包括:
[0065] 步骤301,通过调度层接收用户界面Π 层发送的任务请求;
[0066] 在基于安卓平台的Π 设计中,设计人员可以按照应用程序中各部分实现的功能, 将应用程序划分成UI层、任务层和调度层三层,其中,UI层用于实现UI显示、任务层用于 生成UI层任务请求的请求任务,调度层用于实现对UI层发送的任务请求的转发,并实现对 请求任务的调度。具体的,当终端通过Π 层发送一个任务请求时,终端可以通过调度层接 收Π 层发送的任务请求。
[0067] 其中,为了使得终端可以通过操作系统按照Π 的任务请求所对应的各请求任务 的重要性依次执行各请求任务,终端可以通过在Π 层发送的任务请求中携带该任务请求 对应的请求任务的优先级。
[0068] 步骤302,通过调度层发送任务请求至任务层,使得任务层生成对应于任务请求的 请求任务并发送请求任务至调度层;
[0069] 在终端通过调度层接收到Π 层发送的任务请求之后,为了让任务层可以相应的 根据任务请求生成对应的请求任务,终端可以通过调度层发送任务请求至任务层,从而在 终端通过任务层接收到任务请求之后,终端可以通过任务层根据任务请求生成对应的请求 任务,并且在生成请求任务之后反馈请求任务至调度层。
[0070] 优选地,由于终端可以通过Π 层在不同时刻请求相同内容的请求任务,所以为了 实现对不同时刻的内容相同的请求任务的区分,在终端通过任务层生成对应于任务请求的 请求任务时,终端可以通过任务层为每个请求任务分配一个ID。具体的,终端可以通过任务 层将接收到任务请求的时间设置为对应的请求任务的ID。而为了区分同一时间的不同请求 任务,终端还可以通过任务层将接收到任务请求的时间和一个随机数设置为对应的请求任 务的ID,本实施例只是以上述方式生成请求任务的ID为例,在具体实现时,还可以通过其 他方式为请求任务分配一个标识身份的ID,本实施例对此并不做限定。
[0071] 更为优选地,为了使得终端可以通过操作系统在按照各个请求任务的优先级顺序 执行的同时可以按照各个请求任务的任务类型来执行,在终端通过任务层生成对应于任务 请求的请求任务的同时,终端可以通过任务层生成对应于请求任务的任务类型。其中,终端 可以通过任务层根据请求任务本身属性如下载数据或者获取图片、运行时占用的时间以及 运行时占用资源三个方面来生成请求任务的任务类型。
[0072] 具体的,终端通过任务层生成请求任务的任务类型的方法可以包括:
[0073] 第一,终端通过任务层分别计算请求任务的本身属性、运行时占用的时间以及运 行时占用的资源的得分;
[0074] 由于终端通过ID层发送的任务请求可以是获取图片或者下载数据,而对于ID显 示来说,图片显示带来的用户体验远高于数据下载的用户体验,所以终端可以通过任务层 根据请求任务的本身属性设置不同的得分,如获取图片的得分为9分、下载数据的得分为5 分;同时由于一下请求任务的运行时间较长,如果操作系统一直运行该请求任务,那么其他 运行时间很短的请求任务需要一直处于等待状态,严重影响请求任务的执行效率,所以终 端可以通过任务层根据请求任务的运行时占用的时间分配不同的得分,如运行时占用时间 越长的请求任务的得分越小,运行时占用时间越短的请求任务的得分越大;另外,由于运行 时占用资源较多的请求任务在运行时,操作系统不能或者以极慢的速度响应终端中的其他 请求,所以终端可以通过任务层根据运行时占用的资源的不同而分配不同的得分,如为占 用资源多的请求任务分配较小的得分,而占用资源少的请求任务分配较多的得分。
[0075] 第二,终端通过任务层为请求任务的本身属性、运行时占用的时间以及运行时占 用的资源分配对应的权值;
[0076] 在终端通过任务层生成请求任务的任务类型时,终端还可以通过任务层为请求任 务的本身属性、运行时占用的时间以及运行时占用的资源分配对应的权值。
[0077] 第三,终端通过任务层根据请求任务的本身属性、运行时占用的时间以及运行时 占用的资源的得分以及各自对应的权值计算该请求任务的得分,并根据得分生成该请求任 务的任务类型。
[0078] 终端通过任务层得到请求任务的本身属性、运行时占用的时间以及运行时占用的 资源的得分以及各自对应的权值以后,可以根据得分以及对应的权值计算请求任务的总得 分,从而当总得分大于预设阈值时,可以认为该请求任务是关键性任务,终端可以通过任务 层将该请求任务的任务类型设置为第一任务类型;当总得分小于预设阈值时,可以认为该 请求任务是非关键性任务,终端可以通过任务层将该请求任务的任务类型设置为第二任务 类型。
[0079] 在终端通过任务层生成对应于任务请求的请求任务以及对应的任务类型之后,终 端可以通过任务层发送请求任务以及对应的任务类型至调度层。
[0080] 需要补充说明的是,在实际实现时,为了方便设计人员后期对系统的维护,通过更 改较少的程序代码来实现新增任务或者更改任务,终端可以通过任务层使用工厂生产的方 法来生成对应于任务请求的请求任务。
[0081] 步骤303,通过调度层接收请求任务以及请求任务对应的任务类型;
[0082] 在终端通过任务层发送请求任务以及对应的任务类型至调度层之后,终端可以通 过调度层相应的接收请求任务以及对应的任务类型。
[0083] 步骤304,通过调度层将请求任务按照优先级由高到低的顺序插入到已有的待执 行请求任务队列;
[0084] 为了使得操作系统能够按照请求任务的优先级依次执行各请求任务,在终端通过 调度层接收到请求任务之后,终端可以通过调度层将请求任务按照优先级由高到低的顺序 插入到已有的待执行请求任务队列中。
[0085] 需要说明的是,当终端通过任务层为请求任务分配ID时,终端可以通过调度层将 请求任务按照ID进行区分,并按照优先级由高到低的顺序插入到已有的待执行请求任务 队列,本实施例在此不再赘述。
[0086] 步骤305,通过调度层将待执行请求任务队列中的各个请求任务按照各自的任务 类型逐个投放到与任务类型对应的线程池中;
[0087] 在终端通过调度层得到待执行请求任务队列之后,终端可以通过调度层将待执行 请求任务队列中的各个请求任务按照各自的任务类型逐个投放到与任务类型对应的线程 池中。
[0088] 具体的,在终端将待执行请求任务队列中的第i个请求任务投放至线程池时,终 端可以通过调度层检测待执行请求任务队列中的第i个请求任务是第一任务类型还是第 二任务类型;
[0089] 当终端通过调度层检测到待执行任务队列中的第i个请求任务的任务类型是第 一任务类型,则说明该请求任务是关键性任务,运行时占用时间较短或者希望操作系统尽 快执行,所以终端可以通过调度层将该请求任务投放到第一线程池中。
[0090] 当终端通过调度层检测到待执行任务队列中的第i个请求任务的任务类型是第 二任务类型,则说明该请求任务是非关键性任务,运行时占用时间较长或者即使不立即执 行对用户体验也没有过多的影响,所以终端可以通过调度层将请求任务投放到第二线程池 中。
[0091] 在终端通过调度层将请求任务投放至第一线程池或者第二线程池中以后,终端可 以通过操作系统同时运行两个线程池中的任务,从而避免了关键性任务需要等待非关键性 任务执行完才能执行,请求任务的执行效率低的问题。
[0092] 步骤306,当操作系统执行完请求任务之后,发送反馈信息至Π 层。
[0093] 为了告知Π 层它发送的任务请求对应的请求任务的执行情况,在终端通过操作 系统执行完请求任务之后,终端可以发送反馈信息至Π 层。
[0094] 在实际实现时,终端通过在Π 层发送的任务请求中携带一个对应于任务请求的 回调函数,从而使得在操作系统执行完该任务请求对应的请求任务之后,直接通过回调函 数告知Π 层该请求任务已经执行完成,本实施例对此并不做限定。
[0095] 综上所述,本实施例提供的任务调度方法,通过使用调度层接收Π 层的任务请 求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求 任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行; 解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调 度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求 任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调 度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一 管理的效果;并且通过将Π 任务请求、请求任务的生成以及调度操作由Π 层、任务层和调 度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
[0096] 实施例四
[0097] 请参考图6,其示出了本发明实施例四提供的任务调度装置的结构方框图,该任务 调度装置可以实现为基于安卓平台的终端的全部或者部分,该任务调度装置,可以包括:请 求接收模块410,任务生成模块420,任务接收模块430和任务调度模块440 ;
[0098] 请求接收模块410,用于通过调度层接收用户界面Π 层发送的任务请求;
[0099] 任务生成模块420,用于通过所述调度层发送所述请求接收模块410接收到的所 述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请 求任务至所述调度层;
[0100] 任务接收模块430,用于通过所述调度层接收所述任务生成模块生成的所述请求 任务;
[0101] 任务调度模块440,用于通过所述调度层调度所述请求任务的执行。
[0102] 综上所述,本实施例提供的任务调度装置,通过使用调度层接收Π 层的任务请 求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求 任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行; 解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调 度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求 任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调 度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一 管理的效果;并且通过将Π 任务请求、请求任务的生成以及调度操作由Π 层、任务层和调 度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
[0103] 实施例五
[0104] 请参考图7,其示出了本发明实施例五提供的任务调度装置的结构方框图,该任务 调度装置可以实现为基于安卓平台的终端的全部或者部分,该任务调度装置,可以包括:请 求接收模块410,任务生成模块420,任务接收模块430和任务调度模块440 ;
[0105] 请求接收模块410,用于通过调度层接收用户界面Π 层发送的任务请求;
[0106] 任务生成模块420,用于通过所述调度层发送所述请求接收模块410接收到的所 述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请 求任务至所述调度层;
[0107] 任务接收模块430,用于通过所述调度层接收所述任务生成模块生成的所述请求 任务;
[0108] 任务调度模块440,用于通过所述调度层调度所述请求任务的执行。
[0109] 进一步地,所述任务请求携带有所述请求任务的优先级,所述任务调度模块440, 可以包括:任务插入单元441,任务调度单元442,任务执行单元443和信息反馈单元444 ; [0110] 任务插入单元441,用于通过所述调度层将所述请求任务按照优先级由高到低的 顺序插入到已有的待执行请求任务队列;
[0111] 任务调度单元442,用于通过所述调度层将所述任务插入单元得到的所述待执行 请求任务队列中的各个请求任务逐个投放至线程池中;
[0112] 任务执行单元443,用于通过操作系统逐个执行所述线程池中的任务;
[0113] 信息反馈单元444,用于当所述操作系统执行完所述请求任务之后,发送反馈信息 至所述Π 层。
[0114] 进一步地,所述任务请求携带有所述请求任务的回调函数,
[0115] 所述信息反馈单元444,还用于当所述操作系统执行完所述请求任务之后,根据所 述回调函数发送反馈信息至所述Π 层。
[0116] 综上所述,本实施例提供的任务调度装置,通过使用调度层接收Π 层的任务请 求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求 任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行; 解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调 度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求 任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调 度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一 管理的效果;并且通过将Π 任务请求、请求任务的生成以及调度操作由Π 层、任务层和调 度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
[0117] 实施例六
[0118] 请参考图8,其示出了本发明实施例六提供的任务调度装置的结构方框图,该任务 调度装置可以实现为基于安卓平台的终端中的全部或者部分,该任务调度装置,可以包括: 请求接收模块410,任务生成模块420,任务接收模块430和任务调度模块440 ;
[0119] 请求接收模块410,用于通过调度层接收用户界面Π 层发送的任务请求;
[0120] 任务生成模块420,用于通过所述调度层发送所述请求接收模块410接收到的所 述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请 求任务至所述调度层;
[0121] 任务接收模块430,用于通过所述调度层接收所述任务生成模块生成的所述请求 任务;
[0122] 任务调度模块440,用于通过所述调度层调度所述请求任务的执行。
[0123] 进一步地,所述任务请求携带有所述请求任务的优先级,所述任务调度模块440, 可以包括:任务插入单元441,任务调度单元442,任务执行单元443和信息反馈单元444 ;
[0124] 任务插入单元441,用于通过所述调度层将所述请求任务按照优先级由高到低的 顺序插入到已有的待执行请求任务队列;
[0125] 任务调度单元442,用于通过所述调度层将所述任务插入单元得到的所述待执行 请求任务队列中的各个请求任务逐个投放至线程池中;
[0126] 任务执行单元443,用于通过操作系统逐个执行所述线程池中的任务;
[0127] 信息反馈单元444,用于当所述操作系统执行完所述请求任务之后,发送反馈信息 至所述Π 层。
[0128] 进一步地,所述任务接收模块430,还用于通过所述调度层接收所述请求任务以及 所述请求任务对应的任务类型;
[0129] 所述任务调度单元442,还用于通过所述调度层将所述待执行请求任务队列中的 各个请求任务按照各自的任务类型逐个投放到与所述任务类型对应的线程池中。
[0130] 进一步地,所述任务类型包括第一任务类型和第二任务类型,所述第一任务类型 表示所述请求任务是关键性任务;所述第二任务类型表示所述请求任务是非关键性任务, 所述任务调度单元,包括:任务检测子单元510,第一结果子单元520和第二结果子单元 530 ;
[0131] 任务检测子单元510,用于通过所述调度层检测所述待执行请求任务队列中的第 i个请求任务的任务类型是所述第一任务类型还是所述第二任务类型;
[0132] 第一结果子单元520,用于若所述任务检测子单元510的检测结果为为任务类型 是所述第一任务类型,则将所述待执行请求任务队列中的第i个请求任务投放至第一线程 池中;
[0133] 第二结果子单元530,用于若所述任务检测子单元510的检测结果为任务类型是 所述第二任务类型,则将所述待执行请求任务队列中的第i个请求任务投放至第二线程池 中;
[0134] 其中i为大于等于1的正整数。
[0135] 进一步地,所述任务请求携带有所述请求任务的回调函数,
[0136] 所述信息反馈单元444,还用于当所述操作系统执行完所述请求任务之后,根据所 述回调函数发送反馈信息至所述Π 层。
[0137] 综上所述,本实施例提供的任务调度装置,通过使用调度层接收Π 层的任务请 求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求 任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行; 解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调 度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求 任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调 度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一 管理的效果;并且通过将Π 任务请求、请求任务的生成以及调度操作由Π 层、任务层和调 度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
[0138] 需要说明的是:上述实施例提供的任务调度装置在调度任务时,仅以上述各功能 模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模 块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功 能。另外,上述实施例提供的任务调度装置与任务调度方法的方法实施例属于同一构思,其 具体实现过程详见方法实施例,这里不再赘述。
[0139] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0140] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件 来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读 存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0141] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1. 一种任务调度方法,其特征在于,所述方法包括: 通过调度层接收用户界面Π 层发送的任务请求; 通过所述调度层发送所述任务请求至任务层,使得所述任务层生成对应于所述任务请 求的请求任务并发送所述请求任务至所述调度层; 通过所述调度层接收所述请求任务; 通过所述调度层调度所述请求任务的执行。
2. 根据权利要求1所述的任务调度方法,其特征在于,所述任务请求携带有所述请求 任务的优先级, 所述通过所述调度层调度所述请求任务的执行,包括: 通过所述调度层将所述请求任务按照优先级由高到低的顺序插入到已有的待执行请 求任务队列; 通过所述调度层将所述待执行请求任务队列中的各个请求任务逐个投放至线程池中, 从而通过操作系统逐个执行所述线程池中的任务; 当所述操作系统执行完所述请求任务之后,发送反馈信息至所述Π 层。
3. 根据权利要求2所述的任务调度方法,其特征在于,所述通过所述调度层接收所述 请求任务,包括: 通过所述调度层接收所述请求任务以及所述请求任务对应的任务类型; 所述通过所述调度层将所述待执行请求任务队列中的各个请求任务逐个投放至线程 池中,包括: 通过所述调度层将所述待执行请求任务队列中的各个请求任务按照各自的任务类型 逐个投放到与所述任务类型对应的线程池中。
4. 根据权利要求3所述的任务调度方法,其特征在于,所述任务类型包括第一任务类 型和第二任务类型,所述第一任务类型表示所述请求任务是关键性任务;所述第二任务类 型表示所述请求任务是非关键性任务,所述通过所述调度层将所述待执行请求任务队列中 的各个请求任务按照各自的任务类型逐个投放到与所述任务类型对应的线程池中,包括: 通过所述调度层检测所述待执行请求任务队列中的第i个请求任务的任务类型是所 述第一任务类型还是所述第二任务类型; 若检测结果为任务类型是所述第一任务类型,则将所述待执行请求任务队列中的第i 个请求任务投放至第一线程池中; 若检测结果为任务类型是所述第二任务类型,则将所述待执行请求任务队列中的第i 个请求任务投放至第二线程池中; 其中i为大于等于1的正整数。
5. 根据权利要求2至4任一所述的任务调度方法,其特征在于,所述任务请求携带有所 述请求任务的回调函数, 所述当所述操作系统执行完所述请求任务之后,发送反馈信息至所述UI层,包括: 当所述操作系统执行完所述请求任务之后,根据所述回调函数发送反馈信息至所述Π 层。
6. -种任务调度装置,其特征在于,所述装置包括: 请求接收模块,用于通过调度层接收用户界面Π 层发送的任务请求; 任务生成模块,用于通过所述调度层发送所述请求接收模块接收到的所述任务请求至 任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述 调度层; 任务接收模块,用于通过所述调度层接收所述任务生成模块生成的所述请求任务; 任务调度模块,用于通过所述调度层调度所述请求任务的执行。
7. 根据权利要求6所述的任务调度装置,其特征在于,所述任务请求携带有所述请求 任务的优先级,所述任务调度模块,包括: 任务插入单元,用于通过所述调度层将所述请求任务按照优先级由高到低的顺序插入 到已有的待执行请求任务队列; 任务调度单元,用于通过所述调度层将所述任务插入单元得到的所述待执行请求任务 队列中的各个请求任务逐个投放至线程池中; 任务执行单元,用于通过操作系统逐个执行所述线程池中的任务; 信息反馈单元,用于当所述操作系统执行完所述请求任务之后,发送反馈信息至所述 UI层。
8. 根据权利要求7所述的任务调度装置,其特征在于, 所述任务接收模块,还用于通过所述调度层接收所述请求任务以及所述请求任务对应 的任务类型; 所述任务调度单元,还用于通过所述调度层将所述待执行请求任务队列中的各个请求 任务按照各自的任务类型逐个投放到与所述任务类型对应的线程池中。
9. 根据权利要求8所述的任务调度装置,其特征在于,所述任务类型包括第一任务类 型和第二任务类型,所述第一任务类型表示所述请求任务是关键性任务;所述第二任务类 型表示所述请求任务是非关键性任务,所述任务调度单元,包括 : 任务检测子单元,用于通过所述调度层检测所述待执行请求任务队列中的第i个请求 任务的任务类型是所述第一任务类型还是所述第二任务类型; 第一结果子单元,用于若所述任务检测子单元的检测结果为任务类型是所述第一任务 类型,则将所述待执行请求任务队列中的第i个请求任务投放至第一线程池中; 第二结果子单元,用于若所述任务检测子单元的检测结果为任务类型是所述第二任务 类型,则将所述待执行请求任务队列中的第i个请求任务投放至第二线程池中; 其中i为大于等于1的正整数。
10. 根据权利要求7至9任一所述的任务调度装置,其特征在于,所述任务请求携带有 所述请求任务的回调函数, 所述信息反馈单元,还用于当所述操作系统执行完所述请求任务之后,根据所述回调 函数发送反馈信息至所述Π 层。
11. 一种终端,其特征在于,其包括如权利要求5至10任一所述的任务调度装置。
【文档编号】G06F9/48GK104063279SQ201310091380
【公开日】2014年9月24日 申请日期:2013年3月20日 优先权日:2013年3月20日
【发明者】母翔 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1