任务调度方法、装置、介质及电子设备与流程

文档序号:33640564发布日期:2023-03-29 01:57阅读:38来源:国知局
任务调度方法、装置、介质及电子设备与流程

1.本公开涉及计算机技术领域,具体地,涉及一种任务调度方法、装置、介质及电子设备。


背景技术:

2.在多任务处理的过程中,会有多个任务同时执行,具体到线程级别。而实际上,现有的任务优先处理只是根据任务的优先级设置来分配用于任务运行的资源,这样就会出现优先级反转的现象,即低优先级任务长时间占用资源,造成了高优先级任务阻塞的现象,其中,各任务是周期执行的。
3.目前,通过提高占用同一资源的正在运行的任务的优先级来解决优先级反转问题,能够让该任务优先处理而不被打断,缩短了高优先级任务的排队等待时间。但该解决方案,只是针对单一任务,并且只是缩短了高优先级任务的排队等待时间,并未考虑任务之间的关联性,任务调度具有盲目性。


技术实现要素:

4.为了克服相关技术中存在的问题,本公开提供一种任务调度方法、装置、介质及电子设备。
5.为了实现上述目的,第一方面,本公开提供一种任务调度方法,所述方法包括:
6.响应于待调度任务达到执行触发条件,确定所述待调度任务是否具有目标关联任务;
7.若所述待调度任务具有所述目标关联任务,则调整所述目标关联任务的优先级与所述待调度任务的优先级一致;
8.根据所述目标关联任务和所述待调度任务之间的依赖关系,通过所述待调度任务的进程优先处理所述目标关联任务和所述待调度任务。
9.可选地,所述根据所述目标关联任务和所述待调度任务之间的依赖关系,通过所述待调度任务的进程优先处理所述目标关联任务和所述待调度任务,包括:
10.若所述待调度任务的进程中空闲线程的数量小于所述目标关联任务和所述待调度任务的总任务数、且所述进程中可暂停任务的数量大于或等于n,则暂停n个所述可暂停任务,以释放n个线程,其中,n为所述总任务数与所述空闲线程的数量之差;
11.根据所述目标关联任务和所述待调度任务之间的依赖关系,通过释放的n个线程和线程释放前的所述空闲线程,有序执行所述目标关联任务和所述待调度任务。
12.可选地,所述可暂停任务包括第一预设任务、第二预设任务以及第三预设任务中的至少一者;
13.其中,所述第一预设任务为所述进程中、在当前时刻之前的预设时长内执行错误次数达到预设次数阈值的任务,所述第二预设任务为所述进程中优先级低于所述待调度任务的优先级的任务中、优先级最低的任务,所述第三预设任务为所述进程中调度频率大于
预设频率阈值、且任务执行成功率大于预设成功率阈值的任务。
14.可选地,所述可暂停任务包括所述第一预设任务、所述第二预设任务以及所述第三预设任务;
15.所述暂停n个所述可暂停任务,包括:
16.若所述第一预设任务的数量大于或等于n,则暂停n个所述第一预设任务;
17.若所述第一预设任务的数量小于n、且所述第一预设任务和所述第二预设任务的总数大于或等于n,则暂停所有所述第一预设任务,并暂停n-m个所述第二预设任务,其中,m为所述第一预设任务的数量;
18.若所述第一预设任务和所述第二预设任务的总数小于n,则暂停所有所述第一预设任务和所有所述第二预设任务,并暂停n-m-k个所述第三预设任务,其中,k为所述第二预设任务的数量。
19.可选地,所述根据所述目标关联任务和所述待调度任务之间的依赖关系,通过释放的n个线程和线程释放前的所述空闲线程,有序执行所述目标关联任务和所述待调度任务,包括:
20.根据所述目标关联任务、所述待调度任务以及所述依赖关系,构建有向无环图;
21.通过释放的n个线程和线程释放前的所述空闲线程,有序执行所述有向无环图中的任务。
22.可选地,所述方法还包括:
23.若所述待调度任务不具有所述目标关联任务,则确定所述待调度任务的进程中是否存在空闲线程;
24.若所述进程中不存在空闲线程,则确定所述进程中是否存在可暂停任务;
25.若所述进程中存在所述可暂停任务,则暂停一个所述可暂停任务,以释放一个线程;
26.通过释放的一个线程执行所述待调度任务。
27.第二方面,本公开提供一种任务调度装置,所述装置包括:
28.第一确定模块,用于响应于待调度任务达到执行触发条件,确定所述待调度任务是否具有目标关联任务;
29.优先级调整模块,用于若确定所述待调度任务具有所述目标关联任务,则调整所述目标关联任务的优先级与所述待调度任务的优先级一致;
30.处理模块,用于根据所述目标关联任务和所述待调度任务之间的依赖关系,通过所述待调度任务的进程优先处理所述目标关联任务和所述待调度任务。
31.可选地,所述处理模块包括:
32.第一暂停子模块,用于若所述待调度任务的进程中空闲线程的数量小于所述目标关联任务和所述待调度任务的总任务数、且所述进程中可暂停任务的数量大于或等于n,则暂停n个所述可暂停任务,以释放n个线程,其中,n为所述总任务数与所述空闲线程的数量之差;
33.第一处理子模块,用于根据所述目标关联任务和所述待调度任务之间的依赖关系,通过释放的n个线程和线程释放前的所述空闲线程,有序执行所述目标关联任务和所述待调度任务。
34.第三方面,本公开提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面提供的所述任务调度方法的步骤。
35.第四方面,本公开提供一种电子设备,包括:
36.存储器,其上存储有计算机程序;
37.处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面提供的所述任务调度方法的步骤。
38.在上述技术方案中,在待调度任务达到执行触发条件时,若待调度任务具有目标关联任务,则将目标关联任务的优先级与待调度任务的优先级置为一致,然后,根据目标关联任务和待调度任务之间的依赖关系,通过待调度任务的进程优先处理这些任务。其中,将具有关联关系的任务的优先级调整为一致,可以避免具有关联关系的任务因优先级不一致导致的任务阻塞的问题,从而可以保证具有关联关系的任务能够得到及时优先处理。另外,利用任务之间的依赖关系,可以建立合理的任务调度顺序,从而降低任务调度的盲目性。
39.本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
40.附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
41.图1是根据一示例性实施例示出的一种任务调度方法的流程图。
42.图2是根据一示例性实施例示出的一种任务链的示意图。
43.图3是根据一示例性实施例示出的一种通过待调度任务的进程优先处理目标关联任务和待调度任务的方法的流程图。
44.图4a是图2中所示的有向无环图的一种任务执行顺序的示意图。
45.图4b是图2中所示的有向无环图的另一种任务执行顺序的示意图。
46.图5是根据另一示例性实施例示出的一种任务调度方法的流程图。
47.图6是根据一示例性实施例示出的一种任务调度装置的框图。
48.图7是根据一示例性实施例示出的一种电子设备的框图。
49.图8是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
50.以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
51.需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
52.图1是根据一示例性实施例示出的一种任务调度方法的流程图。如图1所示,该方法可以包括以下s101~s103。
53.在s101中,响应于待调度任务达到执行触发条件,确定待调度任务是否具有目标关联任务。
54.在本公开中,执行触发条件可以具体设置为每隔一定时间间隔进行一次待调度任
务的执行,当达到预设时间间隔时,确定满足执行触发条件,即待调度任务为周期性执行的定时任务。执行触发条件还可以具体设置为以接收到任务执行请求作为待调度任务执行的前提,当接收到任务执行请求时,确定满足执行触发条件。
55.目标关联任务可以包括待调度任务的、未执行的前置任务,其中,待调度任务的前置任务是指待调度任务所在的任务链中、执行次序在当前任务之前的各任务。其中,待调度任务的前置任务可以是0个,也可以是1个,还可以是多个。
56.示例地,如图2所示,待调度任务为任务d,任务d所在的任务链包括任务a、任务b、任务c、任务d以及任务f,其中,任务d的前置任务包括任务a、任务b以及任务c。
57.在s102中,若待调度任务具有目标关联任务,则调整目标关联任务的优先级与待调度任务的优先级一致。
58.在本公开中,为了避免具有关联关系的任务因优先级不一致导致的任务阻塞的问题,将目标关联任务的优先级与待调度任务的优先级置为一致,即将目标关联任务的优先级均调整为待调度任务的优先级。其中,在优先级调整之前,目标关联任务具有自身的优先级,其可能与待调度任务的优先级一致,也可能不一致。
59.在s103中,根据目标关联任务和待调度任务之间的依赖关系,通过待调度任务的进程优先处理目标关联任务和待调度任务。
60.在本公开中,若一个任务的执行需要依赖另一任务的执行,则该两个任务存在依赖关系。待调度任务的进程为用于运行待调度任务的进程,其中,该进程上还可能还运行有其他任务,通过该进程优先执行目标关联任务和待调度任务,可以保证达到执行触发条件的待执行任务及其目标关联任务能够及时被执行。
61.目标关联任务的优先级与待调度任务的优先级是一致的,因此,在确定目标关联任务和待调度任务的执行顺序时,可以不再考虑各任务的优先级,只需要考虑各任务之间的依赖关系即可,这样,可以避免具有关联关系的任务因优先级不一致导致的任务阻塞的问题,从而可以保证具有关联关系的任务能够得到及时优先处理。
62.在上述技术方案中,在待调度任务达到执行触发条件时,若待调度任务具有目标关联任务,则将目标关联任务的优先级与待调度任务的优先级置为一致,然后,根据目标关联任务和待调度任务之间的依赖关系,通过待调度任务的进程优先处理这些任务。其中,将具有关联关系的任务的优先级调整为一致,可以避免具有关联关系的任务因优先级不一致导致的任务阻塞的问题,从而可以保证具有关联关系的任务能够得到及时优先处理。另外,利用任务之间的依赖关系,可以建立合理的任务调度顺序,从而降低任务调度的盲目性。
63.另外,为了使得待调度任务所在的任务链能够快速完整地执行,上述目标关联任务除了包括待调度任务的、未执行的前置任务外,还可以包括待调度任务的后置任务中、只属于待执行任务所在任务链的任务(即该后置任务只属于待执行任务所在任务链,而不属于其他任务链)。其中,待调度任务的后置任务是指待调度任务所在的任务链中、执行次序在当前任务之后的各任务。
64.示例地,如图2所示,待调度任务为任务d,任务d所在的任务链包括任务a、任务b、任务c、任务d以及任务f,其中,任务d的后置任务包括任务f。若任务f仅属于图2所示的任务链,则待调度任务d的后置任务中、只属于待执行任务所在任务链的任务包括任务f;若任务f除了属于图2所示的任务链外,其还属于其他任务链,则待调度任务d的后置任务中、只属
于待执行任务所在任务链的任务为空。
65.下面针对上述s103中的根据目标关联任务和待调度任务之间的依赖关系,通过待调度任务的进程优先处理目标关联任务和待调度任务的具体实施方式进行详细说明。具体来说,可以通过图3中所示的s1031~s1035来实现:
66.在s1031中,确定待调度任务的进程中空闲线程的数量是否小于目标关联任务和待调度任务的总任务数。
67.在本公开中,若待调度任务的进程中空闲线程的数量小于目标关联任务和待调度任务的总任务数,则表明待调度任务的进程中的当前空闲线程无法满足目标关联任务和待调度任务的执行需求,此时,可以执行以下s1032;若待调度任务的进程中空闲线程的数量大于或等于目标关联任务和待调度任务的总任务数,则表明待调度任务的进程中的当前空闲线程能够满足目标关联任务和待调度任务的执行需求,此时,可以执行以下s1035。
68.在s1032中,确定待调度任务的进程中可暂停任务的数量是否大于或等于n。
69.在本公开中,n为目标关联任务和待调度任务的总任务数与待调度任务的进程中的空闲线程的数量之差。
70.若待调度任务的进程中可暂停任务的数量大于或等于n,则可以通过暂停n个可暂停任务,以释放线程资源,从而满足目标关联任务和待调度任务的执行需求,即执行以下s1033和s1034;若待调度任务的进程中可暂停任务的数量小于n,则表明即使将所有的可暂停任务暂停,也无法满足目标关联任务和待调度任务的执行需求,此时,可以返回上述s1031。
71.在s1033中,暂停n个可暂停任务,以释放n个线程。
72.在s1034中,根据目标关联任务和待调度任务之间的依赖关系,通过释放的n个线程和线程释放前的空闲线程,有序执行目标关联任务和待调度任务。
73.在s1035中,根据目标关联任务和待调度任务之间的依赖关系,通过待调度任务的进程中的空闲线程有序执行目标关联任务和待调度任务。
74.其中,一个任务链对应有一个进程,一个进程中包括多个线程,一个线程每次用于执行一个任务,若需要完成目标关联任务和待调度任务的优先执行,需要保证待调度任务的进程中的空闲线程的数量大于或等于目标关联任务和待调度任务的总任务数。
75.在上述实施方式中,在待调度任务的进程中的当前空闲线程的数量小于目标关联任务和待调度任务的总任务数时,通过尝试暂停一些任务,来保证目标关联任务和待调度任务的优先执行,使得具有关联关系的任务能够得到及时优先处理。
76.另外,上述可暂停任务可以包括第一预设任务、第二预设任务以及第三预设任务中的至少一者。
77.其中,第一预设任务为待调度任务的进程中、在当前时刻之前的预设时长内执行错误次数达到预设次数阈值的任务,即待调度任务的进程中、最近执行错误次数较多的任务;第二预设任务为待调度任务的进程中优先级低于待调度任务的优先级的任务中、优先级最低的任务,其中,由于任务可以自动周期性运行,有一些优先级高的任务的运行周期可能没有优先级低的任务的运行周期短,或者高优先级任务运行完之后,低优先级的任务运行时卡住,未释放线程等,因此,待调度任务的进程中存在优先级低于待调度任务的优先级的任务;第三预设任务为待调度任务的进程中调度频率大于预设频率阈值、且任务执行成
功率大于预设成功率阈值的任务,即待调度任务的进程中、调度频率较高且执行成功率较高的任务。
78.在一种实施方式中,可暂停任务可以包括第一预设任务、第二预设任务以及第三预设任务中的任一者。
79.在另一种实施方式中,可暂停任务可以包括第一预设任务、第二预设任务以及第三预设任务中的任两者。
80.在又一种实施方式中,可暂停任务可以同时包括第一预设任务、第二预设任务以及第三预设任务。
81.最近执行错误次数较多的任务,可能是任务依赖的环境或者数据出现了问题,需要人工进行干预才能正常运行的任务,暂停这些任务,可以尽可能减少对生产的影响。
82.暂停待调度任务的进程中优先级低于待调度任务的优先级的任务中、优先级最低的任务,可以保证比其优先级更高的待调度任务和目标关联任务的优先执行,且不会影响其他待调度任务的进程中优先级低于待调度任务的优先级的任务中、优先级并非最低的任务的正常执行。
83.调度频率较高且成功率较高的任务,在暂停并等待高优先级任务完成后,可以很快的达到运行周期并正确完成,因此,暂停调度频率较高且成功率较高的任务对其自身运行影响不大,从而能够尽可能减少对生产的影响。
84.下面针对上述s1033中的暂停n个可暂停任务的具体实施方式进行详细说明。具体来说,可以通过多种实施方式来实现,在一种实施方式中,可以随机暂停n个可暂停任务。
85.在另一种实施方式,可暂停任务包括第一预设任务、第二预设任务以及第三预设任务,此时,可以通过以下步骤(1)~步骤(4)来暂停n个可暂停任务:
86.(1)判断第一预设任务的数量是否大于或等于n。
87.若第一预设任务的数量大于或等于n,则表明通过暂停n个第一预设任务即可实现目标关联任务和待调度任务的优先执行,此时,可以执行以下步骤(2);若第一预设任务的数量小于n,则表明即使暂停所有的第一预设任务,也无法满足目标关联任务和待调度任务的优先需求,此时,可以执行以下步骤(3)。
88.(2)暂停n个第一预设任务。
89.在本公开中,可以随机暂停n个第一预设任务,为了尽可能减少对生产的影响,也可以优先暂停在当前时刻之前的预设时长内执行错误次数相对较多的第一预设任务。
90.(3)判断第一预设任务和第二预设任务的总数是否大于或等于n。
91.若第一预设任务和第二预设任务的总数大于或等于n,则表明通过暂停第一预设任务和第二预设任务即可满足目标关联任务和待调度任务的执行需求,此时,可以执行以下步骤(4);若第一预设任务和第二预设任务的总数小于n,则表明通过暂停所有的第一预设任务和所有的第二预设任务,也无法满足目标关联任务和待调度任务的执行需求,此时,可以执行以下步骤(5)。
92.(4)暂停所有第一预设任务,并暂停n-m个第二预设任务。
93.在本公开中,m为第一预设任务的数量。其中,第二预设任务为待调度任务的进程中优先级低于待调度任务的优先级的任务中、优先级最低的任务,因此,各第二预设任务的优先级是一致的,因此,可以随机暂停n-m个第二预设任务。
94.(5)暂停所有第一预设任务和所有第二预设任务,并暂停n-m-k个第三预设任务。
95.在本公开中,k为第二预设任务的数量。其中,可以随机暂停n-m-k个第三预设任务,为了尽可能减少对生产的影响,也可以优先暂停调度频率相对较高的第三预设任务或者执行成功率相对较低的第三预设任务。
96.由于暂停第一预设任务、第二预设任务、第三预设任务,对于生产的影响依次增大,因此,在上述实施方式中,按照第一预设任务、第二预设任务、第三预设任务的先后顺序进行任务暂停,可以尽可能减少对生产的影响。
97.下面针对上述s1034中的根据目标关联任务和待调度任务之间的依赖关系,通过释放的n个线程和线程释放前的空闲线程,有序执行目标关联任务和待调度任务的具体实施方式进行详细说明。具体来说,可以通过以下步骤[1]和步骤[2]来实现:
[0098]
步骤[1]:根据目标关联任务、待调度任务、以及目标关联任务和待调度任务之间的依赖关系,构建有向无环图。
[0099]
步骤[2]:通过释放的n个线程和线程释放前的空闲线程,有序执行有向无环图中的任务。
[0100]
具体来说,可以以目标关联任务和待调度任务为节点,以目标关联任务和待调度任务之间的依赖关系为边,构建有向无环图,其中,边的方向为被依赖的任务节点指向有依赖的任务节点。其中,被依赖的任务节点在有依赖的任务节点之前执行;若一个任务节点的执行需要依赖于另一个任务节点的执行,则这两个任务节点之间存在依赖关系。特殊地,在执行有向无环图中的各任务时,若有依赖的任务节点有多个被依赖的任务节点,则多个被依赖的任务节点可以按照预设的顺序依次执行,多个被依赖的任务节点之间的执行顺序不作具体限定。
[0101]
示例地,如图2所示,待调度任务d的目标关联任务包括任务a、任务b、任务c以及任务f,则构建的有向无环图如图2所示(图2所示的任务链本身为有向无环图)。
[0102]
针对图2所示的有向无环图,可以按照任务a、任务b、任务c、任务d、任务f的顺序进行执行(如图4a所示),也可以按照任务a、任务c、任务b、任务d、任务f的顺序进行执行(如图4b所示)。
[0103]
其中,上述s1035可以采用与上述s1034类似的方式,来通过待调度任务的进程中的空闲线程有序执行目标关联任务和待调度任务,本公开不再赘述。
[0104]
图5是根据另一示例性实施例示出的一种任务调度方法的流程图。如图5所示,上述方法还可以包括以下s104~s108。
[0105]
在s104中,确定待调度任务的进程中是否存在空闲线程。
[0106]
若上述s101确定待调度任务具有目标关联任务,则执行s102和s103;若上述s101确定待调度任务不具有目标关联任务,则执行s104。
[0107]
若待调度任务的进程中存在空闲线程,则通过待调度任务的进程中的当前空闲线程执行待调度任务,即执行以下s108;若待调度任务的进程中不存在空闲线程,则可以尝试暂停可暂停任务的方式,来优先执行上述待调度任务,即执行以下s105。
[0108]
在s105中,确定待调度任务的进程中是否存在可暂停任务。
[0109]
若待调度任务的进程中存在可暂停任务,则执行以下s106和s107;若待调度任务的进程中不存在可暂停任务,则表明无法通过暂停任务来实现待调度任务的优先执行,此
时,可以返回上述s104。
[0110]
在s106中,暂停一个可暂停任务,以释放一个线程。
[0111]
在本公开中,可以随机暂定一个可暂停任务,优选地,可以优先暂停第一预设任务,以尽可能减少对生产的影响。
[0112]
在s107中,通过释放的一个线程执行待调度任务。
[0113]
在s108中,通过待调度任务的进程中的空闲线程执行待调度任务。
[0114]
在上述实施方式中,在待调度任务的进程不存在空闲线程的情况下,通过尝试暂停任务释放线程的方式来执行待执行任务,可以保证待执行任务的优先执行。
[0115]
图6是根据一示例性实施例示出的一种任务调度装置的框图。如图6所示,该装置600包括:
[0116]
第一确定模块601,用于响应于待调度任务达到执行触发条件,确定所述待调度任务是否具有目标关联任务;
[0117]
优先级调整模块602,用于若确定所述待调度任务具有所述目标关联任务,则调整所述目标关联任务的优先级与所述待调度任务的优先级一致;
[0118]
处理模块603,用于根据所述目标关联任务和所述待调度任务之间的依赖关系,通过所述待调度任务的进程优先处理所述目标关联任务和所述待调度任务。
[0119]
在上述技术方案中,在待调度任务达到执行触发条件时,若待调度任务具有目标关联任务,则将目标关联任务的优先级与待调度任务的优先级置为一致,然后,根据目标关联任务和待调度任务之间的依赖关系,通过待调度任务的进程优先处理这些任务。其中,将具有关联关系的任务的优先级调整为一致,可以避免具有关联关系的任务因优先级不一致导致的任务阻塞的问题,从而可以保证具有关联关系的任务能够得到及时优先处理。另外,利用任务之间的依赖关系,可以建立合理的任务调度顺序,从而降低任务调度的盲目性。
[0120]
可选地,所述处理模块603包括:
[0121]
第一暂停子模块,用于若所述待调度任务的进程中空闲线程的数量小于所述目标关联任务和所述待调度任务的总任务数、且所述进程中可暂停任务的数量大于或等于n,则暂停n个所述可暂停任务,以释放n个线程,其中,n为所述总任务数与所述空闲线程的数量之差;
[0122]
第一处理子模块,用于根据所述目标关联任务和所述待调度任务之间的依赖关系,通过释放的n个线程和线程释放前的所述空闲线程,有序执行所述目标关联任务和所述待调度任务。
[0123]
可选地,所述可暂停任务包括第一预设任务、第二预设任务以及第三预设任务中的至少一者;
[0124]
其中,所述第一预设任务为所述进程中、在当前时刻之前的预设时长内执行错误次数达到预设次数阈值的任务,所述第二预设任务为所述进程中优先级低于所述待调度任务的优先级的任务中、优先级最低的任务,所述第三预设任务为所述进程中调度频率大于预设频率阈值、且任务执行成功率大于预设成功率阈值的任务。
[0125]
可选地,所述可暂停任务包括所述第一预设任务、所述第二预设任务以及所述第三预设任务;
[0126]
所述第一暂停子模块包括:
[0127]
第二暂停子模块,用于若所述第一预设任务的数量大于或等于n,则暂停n个所述第一预设任务;
[0128]
第三暂停子模块,用于若所述第一预设任务的数量小于n、且所述第一预设任务和所述第二预设任务的总数大于或等于n,则暂停所有所述第一预设任务,并暂停n-m个所述第二预设任务,其中,m为所述第一预设任务的数量;
[0129]
第四暂停子模块,用于若所述第一预设任务和所述第二预设任务的总数小于n,则暂停所有所述第一预设任务和所有所述第二预设任务,并暂停n-m-k个所述第三预设任务,其中,k为所述第二预设任务的数量。
[0130]
可选地,所述第一处理子模块包括:
[0131]
构建子模块,用于根据所述目标关联任务、所述待调度任务以及所述依赖关系,构建有向无环图;
[0132]
第二处理子模块,用于通过释放的n个线程和线程释放前的所述空闲线程,有序执行所述有向无环图中的任务。
[0133]
可选地,所述装置600还包括:
[0134]
第二确定模块,用于若所述待调度任务不具有所述目标关联任务,则确定所述待调度任务的进程中是否存在空闲线程;
[0135]
第三确定模块,用于若所述进程中不存在空闲线程,则确定所述进程中是否存在可暂停任务;
[0136]
暂停模块,用于若所述进程中存在所述可暂停任务,则暂停一个所述可暂停任务,以释放一个线程;
[0137]
所述处理模块603,还用于通过释放的一个线程执行所述待调度任务。
[0138]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0139]
本公开还提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开提供的上述任务调度方法的步骤。
[0140]
本公开还提供一种电子设备,包括:
[0141]
存储器,其上存储有计算机程序;
[0142]
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开提供的上述任务调度方法的步骤。
[0143]
图7是根据一示例性实施例示出的一种电子设备700的框图。如图7所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(i/o)接口704,以及通信组件705中的一者或多者。
[0144]
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的任务调度方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程
只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near field communication,简称nfc),2g、3g、4g、nb-iot、emtc、或其他5g等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:wi-fi模块,蓝牙模块,nfc模块等等。
[0145]
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的任务调度方法。
[0146]
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的任务调度方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的任务调度方法。
[0147]
图8是根据一示例性实施例示出的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图8,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的任务调度方法。
[0148]
另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(i/o)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统。
[0149]
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的任务调度方法的步骤。例如,该非临时性计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的任务调度方法。
[0150]
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的任务调度方法的代码部分。
[0151]
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实
施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
[0152]
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
[0153]
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1