[发明专利]任务调度方法、装置、设备及存储介质有效
申请号: | 201910113945.7 | 申请日: | 2019-02-14 |
公开(公告)号: | CN109840149B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 朱自强 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司;上海小度技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京市铸成律师事务所 11313 | 代理人: | 杨瑾瑾;陈建民 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 任务 调度 方法 装置 设备 存储 介质 | ||
1.一种任务调度方法,其特征在于,包括:
将待执行的任务按照任务所需资源类型拆分成多个子任务;
将所述多个子任务按照执行顺序加入队列;
获取线程池中处于运行状态的子任务的个数;
根据所述处于运行状态的子任务的个数和所述队列中的子任务的任务所需资源类型,将各个所述子任务提交至所述线程池;
其中,所述待执行的任务中包括若干个执行步骤,所述将待执行的任务按照任务所需资源类型拆分成多个子任务,包括:根据所述待执行的任务中的各个执行步骤的所需资源类型,将所述待执行的任务拆分成多个子任务。
2.根据权利要求1所述的方法,其特征在于,还包括:所述任务所需资源类型包括中央处理器密集型和输入输出密集型。
3.根据权利要求2所述的方法,其特征在于,所述根据所述处于运行状态的子任务的个数和所述队列中的子任务的任务所需资源类型,将各个所述子任务提交至所述线程池,包括:
根据中央处理器的核心数量设置线程数上限;
根据所述线程数上限、所述处于运行状态的子任务的个数和所述队列中的子任务的任务所需资源类型,将各个所述子任务提交至所述线程池。
4.根据权利要求3所述的方法,其特征在于,所述线程数上限包括第一线程数上限;
所述根据所述线程数上限、所述处于运行状态的子任务的个数和所述队列中的子任务的任务所需资源类型,将各个所述子任务提交至所述线程池,包括:
判断所述处于运行状态的子任务的个数是否小于所述第一线程数上限;
如果是,则将所述队列中的第一个子任务作为待提交子任务;
获取所述待提交子任务的任务所需资源类型;
当所述待提交子任务的任务所需资源类型为输入输出密集型时,将所述待提交子任务提交至所述线程池;返回执行所述判断的步骤。
5.根据权利要求4所述的方法,其特征在于,所述线程数上限还包括第二线程数上限;
所述获取所述待提交子任务的任务所需资源类型之后,还包括:
当所述待提交子任务的任务所需资源类型为中央处理器密集型时,判断所述处于运行状态的子任务的个数是否小于所述第二线程数上限;
如果是,则将所述待提交子任务提交至所述线程池;返回执行所述判断所述处于运行状态的子任务的个数是否小于所述第一线程数上限的步骤。
6.根据权利要求5所述的方法,其特征在于,所述判断所述处于运行状态的子任务的个数是否小于所述第二线程数上限之后,还包括:
如果否,则将与所述待提交子任务相邻的后一个子任务作为新的待提交子任务,针对所述新的待提交子任务,返回执行所述获取所述待提交子任务的任务所需资源类型的步骤。
7.根据权利要求4-6中任一项所述的方法,其特征在于,所述获取线程池中处于运行状态的子任务的个数,包括:
在所述线程池中的各个所述子任务中设置回调函数;
通过所述回调函数获取线程池中各个所述子任务的状态,所述状态包括:运行状态或结束状态;
根据所述线程池中各个所述子任务的状态,统计在线程池中处于运行状态的子任务的个数。
8.根据权利要求7所述的方法,其特征在于,还包括:
当所述线程池中出现状态由运行状态转换为结束状态的子任务时,返回执行所述将所述队列中的第一个子任务作为待提交子任务的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司;上海小度技术有限公司,未经百度在线网络技术(北京)有限公司;上海小度技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910113945.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多应用智能卡操作系统及其更新应用优先级的方法
- 下一篇:存储器分配器