任务调度方法、系统及电子设备技术方案

技术编号:31021987 阅读:44 留言:0更新日期:2021-11-30 03:12
本申请实施例公开了一种任务调度方法、系统及电子设备,通过逻辑线程将等待任务序列以及未连接任务序列发送给连接线程;未连接任务序列中的任务为逻辑线程建立的不存在依赖任务的任务;通过连接线程在未连接任务序列中查询目标任务,目标任务为未连接任务序列中,后置任务包括等待任务序列中的至少一个未完成的任务的任务;若查询到目标任务,通过连接线程将目标任务发送给所述逻辑线程;通过逻辑线程将目标任务插入逻辑线程任务无锁队列,以便连接线程和工作线程偷取目标任务并执行。本申请通过逻辑线程与连接线程的交互,实现了优先处理等待任务序列的目的,从而缩短等待任务序列等待执行的时间,提高了等待任务序列的执行效率。效率。效率。

【技术实现步骤摘要】
任务调度方法、系统及电子设备


[0001]本申请涉及计算机应用
,更具体地说,涉及一种任务调度方法、系统及电子设备。

技术介绍

[0002]在支持任务依赖的多线程并发任务调度系统中,如果一个任务A的执行依赖于另一个任务B的执行,则任务A需要等任务B完成后才能被执行。在一些场景下,有执行完成特定任务序列的需求,基于此,如果特定任务序列中的任务的执行依赖于至少一个其它任务(该其它任务不属于特定任务序列)的执行,则特定任务序列中的任务需要等上述至少一个其它任务全部都执行完才能被执行,而其它任务什么时候执行是不确定的,导致特定任务序列的执行效率较低。

技术实现思路

[0003]本申请的目的是提供一种任务调度方法、系统及电子设备,包括如下技术方案:
[0004]一种任务调度方法,包括:
[0005]通过逻辑线程将等待任务序列以及未连接任务序列发送给连接线程;所述未连接任务序列中的任务为所述逻辑线程建立的不存在依赖任务的任务;
[0006]通过所述连接线程在所述未连接任务序列中查询目标任务,所述目标任务为所述未本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:通过逻辑线程将等待任务序列以及未连接任务序列发送给连接线程;所述未连接任务序列中的任务为所述逻辑线程建立的不存在依赖任务的任务;通过所述连接线程在所述未连接任务序列中查询目标任务,所述目标任务为所述未连接任务序列中,后置任务包括所述等待任务序列中的至少一个未完成的任务的任务;若查询到目标任务,通过所述连接线程将所述目标任务发送给所述逻辑线程;通过所述逻辑线程将所述目标任务插入逻辑线程任务无锁队列,以便所述连接线程和工作线程偷取所述目标任务并执行。2.根据权利要求1所述的方法,其特征在于,所述连接线程在所述未连接任务序列中查询目标任务包括:所述连接线程查询所述等待任务序列中所有未完成的任务;对于所述未连接任务序列中的每一个任务T,所述连接线程遍历以所述任务T为根节点的任务树,以查询所述任务树中是否存在至少一个所述未完成的任务;所述任务树中相互连接的两个节点为具有依赖关系的两个任务;若所述任务树中存在至少一个所述未完成任务,将所述任务T确定位目标任务。3.根据权利要求1所述的方法,其特征在于,还包括:通过所述工作线程偷取目标无锁队列中的任务并执行;所述目标无锁队列至少包括所述逻辑线程任务无锁队列,以及存储有所述连接线程插入的依赖任务均已执行完成的任务的连接线程任务无锁队列;通过所述工作线程将执行完成的任务插入所述工作线程对应的减少后置任务无锁队列中;通过所述连接线程获取增加后置任务无锁队列中的封装包并执行,以建立所述封装包中的至少两个任务的依赖关系,并确定是否增加所述至少两个任务中的后置任务的引用计数,所述引用计数用于确定所述后置任务的所有依赖任务的数量;所述封装包由所述逻辑线程建立所述后置任务时生成;通过所述连接线程根据各工作线程对应的减少后置任务无锁队列确定需要减少引用计数的后置任务并减少该后置任务的引用计数,在任一后置任务的引用计数为目标值时,将该后置任务插入所述连接线程任务无锁队列中。4.根据权利要求3所述的方法,其特征在于,所述未连接任务序列存储于逻辑线程任务缓存队列中,所述方法还包括:在所述逻辑线程任务缓存队列中的元素个数达到最大缓存个数时,通过所述逻辑线程将所...

【专利技术属性】
技术研发人员:何灿
申请(专利权)人:竞技世界北京网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1