【技术实现步骤摘要】
任务调度方法、系统及电子设备
[0001]本申请涉及计算机应用
,更具体地说,涉及一种任务调度方法、系统及电子设备。
技术介绍
[0002]传统的支持任务依赖的任务调度方法涉及到主线程和任务线程,其中,主线程用于创建任务,任务线程用于执行任务。传统的任务调度方法在支持后置任务的时候,需要遵循以下原则:1、任务线程在执行某个具有后置任务的任务A时,主线程不能再向这个任务A添加后置任务;2、任务线程在执行某个具有后置任务的任务A时,先使用互斥锁创建一个临界区,使得主线程不会同时操作任务A。基于条件1,主线程必须在任务线程开始执行之前,将任务的依赖关系建立好,导致用户的使用的不便利,而基于条件2则会导致任务的执行效率变差,因为对于每个任务都需要使用互斥锁的方式来检查后置任务。
技术实现思路
[0003]本申请的目的是提供一种任务调度方法、系统及电子设备,包括如下技术方案:
[0004]一种任务调度方法,包括:
[0005]通过任务线程偷取目标无锁队列中的任务并执行;所述目标无锁队列至少包括存储 ...
【技术保护点】
【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:通过任务线程偷取目标无锁队列中的任务并执行;所述目标无锁队列至少包括存储有主线程建立的不存在依赖任务的任务的主线程任务无锁队列,以及存储有连接线程插入的依赖任务均已执行完成的任务的连接线程任务无锁队列;通过所述任务线程将执行完成的任务插入所述任务线程对应的减少后置任务无锁队列中;通过所述连接线程获取增加后置任务无锁队列中的封装包并执行,以建立所述封装包中的至少两个任务的依赖关系,并确定是否增加所述至少两个任务中的后置任务的引用计数,所述引用计数用于确定所述后置任务的所有依赖任务的数量;所述封装包由所述主线程建立所述后置任务时生成;通过所述连接线程根据各任务线程对应的减少后置任务无锁队列确定需要减少引用计数的后置任务并减少该后置任务的引用计数,在任一后置任务的引用计数为目标值时,将该后置任务插入所述连接线程任务无锁队列中。2.根据权利要求1所述的方法,其特征在于,所述任务线程偷取目标无锁队列中的任务并执行,将执行完成的任务插入所述任务线程对应的减少后置任务无锁队列中的过程,包括:所述任务线程偷取第一目标无锁队列中的任务并执行,将执行完成的任务插入所述任务线程对应的减少后置任务无锁队列;在所述第一目标无锁队列中的任务执行完成后,所述任务线程偷取第二目标无锁队列中的任务并执行,将执行完成的任务插入所述任务线程对应的减少后置任务无锁队列;所述第一目标无锁队列和所述第二目标无锁队列是所述主线程任务无锁队列和所述连接线程任务无锁队列中的不同目标无锁队列。3.根据权利要求1所述的方法,其特征在于,所述连接线程确定是否增加所述至少两个任务中的后置任务的引用计数的过程,包括:所述连接线程检查所述至少两个任务中的依赖任务是否完成;若所述至少两个任务中的所有依赖任务均已经完成,则保持所述至少两个任务中的后置任务的引用计数不变;若所述至少两个任务中的M个依赖任务均未完成,则将所述后置任务的引用计数加M。4.根据权利要求3所述的方法,其特征在于,若所述至少两个任务中的所有依赖任务均已经完成,所述方法还包括:所述连接线程判断所述至少两个任务中的后置任务的引用计数是否为目标值;若判断结果为是,将所述至少两个任务中的后置任务插入所述连接线程任务无锁队列中。5.根据权利要求1所述的方法,其特征在于,所述连接线程根据各任务线程对应的减少后置任务无锁队列确定需要减少引用计数的后置任务并减少该后置任务的引用计数,包括:对于所述减少后置任务无锁队列中的任一任务P,寻找所述任务P的所有后置任务PP;将各后置任务P...
【专利技术属性】
技术研发人员:何灿,
申请(专利权)人:竞技世界北京网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。