CN117971491A - 进程内资源控制方法、装置、设备及存储介质 - Google Patents
进程内资源控制方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117971491A CN117971491A CN202410200024.5A CN202410200024A CN117971491A CN 117971491 A CN117971491 A CN 117971491A CN 202410200024 A CN202410200024 A CN 202410200024A CN 117971491 A CN117971491 A CN 117971491A
- Authority
- CN
- China
- Prior art keywords
- task
- thread
- threads
- resource pool
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 126
- 230000008569 process Effects 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 29
- 230000002159 abnormal effect Effects 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 25
- 238000012544 monitoring process Methods 0.000 claims description 15
- 238000012423 maintenance Methods 0.000 abstract description 6
- 238000007726 management method Methods 0.000 description 33
- 230000036541 health Effects 0.000 description 24
- 238000004364 calculation method Methods 0.000 description 12
- 238000011217 control strategy Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Abstract
本申请提供一种进程内资源控制方法、装置、设备及存储介质,可用于计算机领域。该方法包括:获取待处理的至少一个任务及各任务属性信息;任务属性信息包括:任务执行类型;任务执行类型为串行执行或并行执行;根据各任务属性信息确定执行各任务对应的线程;线程由进程创建,且位于第一资源池或第二资源池中;第一资源池为串行处理任务对应线程的资源池,第二资源池为并行处理任务对应线程的资源池;第一资源池和第二资源池中线程的数量是预先配置的;将各任务分配到对应的线程的任务队列中;采用对应线程依次执行对应任务队列中的任务。本申请提高了对资源控制精度的准确性,降低了对软件的维护成本。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种进程内资源控制方法、装置、设备及存储介质。
背景技术
中间件软件可以运行在不同的系统或芯片上。而针对不同的芯片,其CPU数量、算力往往差距较大。所以同一套中间件软件运行在不同芯片上时,往往表现出不同的性能。
为了在不同芯片上均使中间件软件体现出较好的性能,一般采用不同的软件版本来解决。而不同的软件版本采用不同的资源控制策略,所以导致对软件的维护成本较高,并且在采用不同的资源控制策略时,一般是以进程为粒度来控制的,导致对资源的控制精度不够准确。
发明内容
本申请提供一种进程内资源控制方法、装置、设备及存储介质,用以解决现有技术中不同的软件版本采用不同的资源控制策略导致对软件的维护成本较高的技术问题,同时解决在采用不同的资源控制策略时,一般是以进程为粒度来控制的,导致对资源的控制精度不够准确的技术问题。
第一方面,本申请提供一种进程内资源控制方法,包括:
获取待处理的至少一个任务及各任务属性信息;所述任务属性信息包括:任务执行类型;所述任务执行类型为串行执行或并行执行;
根据各任务属性信息确定执行各任务对应的线程;所述线程由进程创建,且位于第一资源池或第二资源池中;所述第一资源池为串行处理任务对应线程的资源池,所述第二资源池为并行处理任务对应线程的资源池;所述第一资源池和所述第二资源池中线程的数量是预先配置的;
将各任务分配到对应的线程的任务队列中;
采用对应线程依次执行对应任务队列中的任务。
在一种可能的设计中,所述根据各任务属性信息确定执行各任务对应的线程,包括:
响应于任意一个任务对应的任务执行类型为串行执行,将第一资源池中的线程确定为该任务对应的第一候选线程,并按照第一线程选择策略从所述第一候选线程中确定出执行该任务对应的线程;
响应于任意一个任务对应的任务执行类型为并行执行,将第二资源池中的线程确定为该任务对应的第二候选线程,并按照第二线程选择策略从所述第二候选线程中确定出执行该任务对应的线程。
在一种可能的设计中,所述任务属性信息还包括任务种类及任务负荷权重;
所述按照第一线程选择策略从所述第一候选线程中确定出执行该任务对应的线程,包括:
根据所述任务种类从所述第一候选线程对应的任务队列中确定是否存在与该任务相同种类的任务;
若是,则将与该任务相同种类的任务对应的任务队列所属第一候选线程确定为执行该任务对应的线程;
若否,则从第一候选线程对应的任务队列中确定出包括的任务种类数量最小或包括的任务对应任务负荷权重总和最小的第一目标任务队列,并将所述第一目标任务队列所属第一候选线程确定为执行该任务对应的线程。
在一种可能的设计中,所述按照第二线程选择策略从所述第二候选线程中确定出执行该任务对应的线程,包括:
从各第二候选线程对应的任务队列中确定出包括的待执行任务数量最小或包括的任务对应的任务负荷权重总和最小的第二目标任务队列;
将所述第二目标任务队列所属第二候选线程确定为执行该任务对应的线程。
在一种可能的设计中,所述方法还包括:
按照第一预设周期监测各线程执行状态;
响应于任意一个线程执行状态为异常状态,确定出待接收任务的线程,并将异常线程对应的任务队列中的任务转移至待接收任务的线程对应的任务队列中;
对所述异常线程进行删除。
在一种可能的设计中,所述按照第一预设周期监测各线程执行状态,包括:
按照第二预设周期接收各线程发送的心跳信息,所述心跳信息中包括线程标识;
响应于根据线程标识确定在第一预设周期接收到任意一个线程发送的心跳信息,确定该线程执行状态为正常;
响应于根据线程标识确定在第一预设周期未接收到任意一个线程发送的心跳信息,确定该线程执行状态为异常。
在一种可能的设计中,所述方法还包括:
按照第三预设周期确定在对应资源池中的线程数量;
响应于所述线程数量小于预先配置的线程数量,则在对应资源池中创建新的线程,以使创建线程后对应资源池中总线程数量等于预先配置的线程数量。
第二方面,本申请提供一种进程内资源控制装置,包括:
获取模块,用于获取待处理的至少一个任务及各任务属性信息;所述任务属性信息包括:任务执行类型;所述任务执行类型为串行执行或并行执行;
确定模块,用于根据各任务属性信息确定执行各任务对应的线程;所述线程由进程创建,且位于第一资源池或第二资源池中;所述第一资源池为串行处理任务对应线程的资源池,所述第二资源池为并行处理任务对应线程的资源池;所述第一资源池和所述第二资源池中线程的数量是预先配置的;
分配模块,用于将各任务分配到对应的线程的任务队列中;
执行模块,用于采用对应线程依次执行对应任务队列中的任务。
第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面任一项所述的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法。
本申请提供的进程内资源控制方法、装置、设备及存储介质,通过获取待处理的至少一个任务及各任务属性信息;所述任务属性信息包括:任务执行类型;所述任务执行类型为串行执行或并行执行;根据各任务属性信息确定执行各任务对应的线程;所述线程由进程创建,且位于第一资源池或第二资源池中;所述第一资源池为串行处理任务对应线程的资源池,所述第二资源池为并行处理任务对应线程的资源池;所述第一资源池和所述第二资源池中线程的数量是预先配置的;将各任务分配到对应的线程的任务队列中;采用对应线程依次执行对应任务队列中的任务。通过第一资源池中的线程处理串行任务,并将串行任务分配到对应的线程的任务队列中,通过第二资源池中的线程处理并行任务,并将并行任务分配到对应的线程的任务队列中,可以使串行任务和并行任务按照一定的顺序执行,从而避免了任务执行过程中出现顺序错乱导致任务执行失败的问题,保证了任务执行的准确性。本方案中第一资源池和所述第二资源池中线程的数量是预先配置好的,线程保持在一个固定的数量上,所以针对不同的芯片,其算力需求都是一致的,所以只需使用同一套中间件软件即可平稳运行在不同算力的芯片上,降低了软件维护成本,同时本方案以线程为粒度对资源进行控制,提升了对资源控制精度的准确性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请一个实施例提供的进程内资源控制方法的应用场景图;
图2为本申请一实施例提供的进程内资源控制方法的流程图;
图3为本申请另一实施例提供的进程内资源控制方法的流程图;
图4为本申请又一实施例提供的进程内资源控制方法的流程图;
图5为本申请实施例提供的业务进程结构框架示意图;
图6为本申请一实施例提供的进程内资源控制装置的结构示意图;
图7为本申请一实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
为了清楚理解本申请的技术方案,首先对现有技术的方案进行详细介绍。
中间件一般是一套通用的系统,可以运行在不同的系统或不同的芯片上。而针对不同的业务,芯片的CPU数量、算力往往相差很大。比如,面向智能驾驶的芯片,CPU核数能到十几个,而一些网关类的芯片,CPU只是单核或双核。因此,一套中间件软件运行在这两个芯片上时,需要使用不同的资源使用策略。在高算力芯片上运行时,为了达到更高的性能,可以创建更多的线程来处理任务。在低算力芯片运行时,这种策略就会由于线程数太多,CPU少导致任务调度开销很大,影响性能。目前为了在不同芯片上均使中间件软件体现出较好的性能,一般采用不同的软件版本来解决。而不同的软件版本采用不同的资源控制策略,所以导致对软件的维护成本较高,并且在采用不同的资源控制策略时,一般是以进程为粒度来控制的,导致对资源的控制精度不够准确。
所以在面对现有技术中的技术问题时,为了解决现有技术中不同的软件版本采用不同的资源控制策略导致对软件的维护成本较高的技术问题,通过在一个进程内部实现资源控制及任务调度,并且针对这个进程,预先配置好第一资源池和第二资源池中线程的数量,并基于任务执行类型将任务分配至对应的线程的任务队列中,由对应线程依次执行对应任务队列中的任务,由于这个进程对应的线程保持在一个固定的数量上,所以针对不同的芯片,其算力需求都是一致的,从而使用同一套软件即可平稳运行于不同算力的芯片上。为了解决现有技术中在采用不同的资源控制策略时,一般是以进程为粒度来控制的,导致对资源的控制精度不够准确的问题,可以以线程为粒度进行控制,提高对资源控制精确的准确性。
下面对本发明实施例的应用场景进行介绍。
图1为本申请一个实施例提供的进程内资源控制方法的应用场景图,如图1所示,示例性的,本申请具体的应用场景可以为在中间件软件运行在面向智能驾驶的芯片上时对资源进行控制的场景。本申请提供的进程内资源控制方法对应的系统中包括:进程内资源控制对应的电子设备,如可以为车载终端。车载终端包括用户操作界面1和智能驾驶芯片2。用户通过点击车载终端的用户操作界面1向智能驾驶芯片2发送任务指令,或者智能驾驶芯片2通过车载终端中的传感器或其它方式自动触发任务指令。任务指令中包括待处理的任务及任务属性信息,智能驾驶芯片根据各任务属性信息创建不同数量的线程并确定执行各任务对应的线程,由第一资源池处理串行任务,由第二资源池处理并行任务,将各任务分配到对应的线程的任务队列中,采用对应线程依次执行对应任务队列中的任务。
可以理解的是,本实施例提供的进程内资源控制方法的应用场景还可以为其他应用场景,对应的芯片也可以为其他类型的芯片,如可以为网关设备中的芯片,本实施例中对此不做限定。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请一实施例提供的进程内资源控制方法的流程图,如图2所示,本实施例的执行主体为进程内资源控制装置,该进程内资源控制装置位于电子设备中,该电子设备可以为车载终端。则本实施例提供的进程内资源控制方法包括以下步骤:
步骤201,获取待处理的至少一个任务及各任务属性信息;任务属性信息包括:任务执行类型;任务执行类型为串行执行或并行执行。
其中,任务属性信息,是指待处理的任务对应的属性信息,可以包括任务种类及任务执行类型。其中任务执行类型为串行执行或并行执行。
其中,串行执行,是指任务之间有关联,需要在一个任务执行完后再执行另一个任务。
其中,并行执行,是指任务不用按先后顺序执行,可以同时执行。
具体地,本实施例中,用户通过点击车载终端的用户操作界面向电子设备发送任务指令,或者电子设备通过车载终端中的传感器或其它方式自动触发任务指令,任务指令中包括待处理的任务及任务属性信息,所以电子设备可以获取待处理的任务及任务属性信息。
步骤202,根据各任务属性信息确定执行各任务对应的线程;线程由进程创建,且位于第一资源池或第二资源池中;第一资源池为串行处理任务对应线程的资源池,第二资源池为并行处理任务对应线程的资源池;第一资源池和第二资源池中线程的数量是预先配置的。
其中,第一资源池,是用于存储任务执行类型为串行执行的线程的资源池。
其中,第二资源池,是用于存储任务执行类型为并行执行的线程的资源池。
具体地,本实施例中,用户可配置第一资源池和第二资源池中线程的数量,电子设备根据用户预先配置的第一资源池和第二资源池中线程的数量在第一资源池和第二资源池中创建对应数量的线程,基于获取的任务及任务属性信息,判断任务为串行执行或并行执行,若任务执行类型为串行执行,则将任务分配至第一资源池中,若任务执行类型为并行执行,则将任务分配至第二资源池中。
步骤203,将各任务分配到对应的线程的任务队列中。
其中,任务队列,用于缓存待处理的任务。
具体地,本实施例中,一个线程对应一个任务队列,电子设备基于任务执行类型将任务分配至对应的线程的任务队列中。若任务执行类型为串行执行,则将任务分配至第一资源池中对应线程的任务队列中,若任务执行类型为并行执行,则将任务分配至第二资源池中对应线程的任务队列中。具体可将任务存储在对应线程的任务队列的顶部。可在前面已经存储的任务执行完后,执行该任务。
步骤204,采用对应线程依次执行对应任务队列中的任务。
具体地,本实施例中,第一资源池和第二资源池中对应线程依次执行对应任务队列中的任务,任务队列中任务的执行方式采用先进先出的方式,当有任务队列不为空时,取任务队列中的第一个任务进行处理,当任务队列中无任务时,线程挂起,进入非可执行的状态,此时将线程将不再占用CPU的资源。
本实施例提供的进程内资源控制方法,通过获取待处理的至少一个任务及各任务属性信息;任务属性信息包括:任务执行类型;任务执行类型为串行执行或并行执行;根据各任务属性信息确定执行各任务对应的线程;线程由进程创建,且位于第一资源池或第二资源池中;第一资源池为串行处理任务对应线程的资源池,第二资源池为并行处理任务对应线程的资源池;第一资源池和第二资源池中线程的数量是预先配置的;将各任务分配到对应的线程的任务队列中;采用对应线程依次执行对应任务队列中的任务。通过第一资源池中的线程处理串行任务,并将串行任务分配到对应的线程的任务队列中,通过第二资源池中的线程处理并行任务,并将并行任务分配到对应的线程的任务队列中,可以使串行任务和并行任务按照一定的顺序执行,从而避免了任务执行过程中出现顺序错乱导致任务执行失败的问题,保证了任务执行的准确性。本方案中第一资源池和第二资源池中线程的数量是预先配置好的,线程保持在一个固定的数量上,所以针对不同的芯片,其算力需求都是一致的,所以只需使用同一套中间件软件即可平稳运行在不同算力的芯片上,降低了软件维护成本,同时本方案以线程为粒度对资源进行控制,提升了对资源控制精度的准确性。
作为一种可选实施方式,本实施例中,步骤202包括以下步骤:
步骤2021,响应于任意一个任务对应的任务执行类型为串行执行,将第一资源池中的线程确定为该任务对应的第一候选线程,并按照第一线程选择策略从第一候选线程中确定出执行该任务对应的线程。
其中,第一候选线程,是指第一资源池中用于处理任务执行类型为串行执行的任务的候选线程。
其中,第一线程选择策略,是指为任务执行类型为串行执行的任务选择最佳线程的策略。
具体地,本实施例中,电子设备在确定任务执行类型为串行执行后,将第一资源池中的线程确定为该任务的第一候选线程,首先判断第一资源池中的线程的任务队列中是否有与待处理的任务具有关联关系的任务,若有,则将与待处理的任务具有关联关系的任务对应的线程作为执行该任务的最佳线程,将任务分配至该最佳线程的任务队列中。若无,则根据第一线程选择策略从第一候选线程中找出包括的任务所需算力值最小的线程作为执行该任务的最佳线程,将任务分配至该最佳线程的任务队列中。
步骤2022,响应于任意一个任务对应的任务执行类型为并行执行,将第二资源池中的线程确定为该任务对应的第二候选线程,并按照第二线程选择策略从第二候选线程中确定出执行该任务对应的线程。
其中,第二候选线程,是指第二资源池中用于处理任务执行类型为并行执行的任务的候选线程。
其中,第二线程选择策略,是指为任务执行类型为并行执行的任务选择最佳线程的策略。
具体地,本实施例中,电子设备在确定任务执行类型为并行执行后,将第二资源池中的线程确定为该任务的第二候选线程,然后根据第二线程选择策略从第二候选线程中找出包括的任务所需算力值最小的线程作为执行该任务的最佳线程,将任务分配至该最佳线程的任务队列中。
本实施例提供的进程内资源控制方法,根据各任务属性信息确定执行各任务对应的线程,包括:响应于任意一个任务对应的任务执行类型为串行执行,将第一资源池中的线程确定为该任务对应的第一候选线程,并按照第一线程选择策略从第一候选线程中确定出执行该任务对应的线程;响应于任意一个任务对应的任务执行类型为并行执行,将第二资源池中的线程确定为该任务对应的第二候选线程,并按照第二线程选择策略从第二候选线程中确定出执行该任务对应的线程。通过过判断任务执行类型,根据任务类型将任务分配至不同的资源池中,可以使串行任务和并行任务相分离,从而避免了任务执行过程中出现顺序错乱导致任务执行失败的问题,保证了任务执行的准确性。同时根据第一线程选择策略和第二线程选择策略确定出执行任务的最佳线程,可以基于任务执行类型的不同,按照不同的线程选择策略为待处理的任务准确选择最优的处理资源,保证任务可以尽快处理,提升了任务的执行效率。
图3为本申请另一实施例提供的进程内资源控制方法的流程图,如图3所示,作为一种可选实施方式,本实施例中,任务属性信息还包括任务种类及任务负荷权重。
相应地,步骤2021包括以下步骤:
步骤301,根据任务种类从第一候选线程对应的任务队列中确定是否存在与该任务相同种类的任务。
其中,与该任务相同种类的任务,是指与该任务具有关联关系的任务。
具体地,本实施例中,电子设备获取任务及任务属性信息,任务属性信息中包括任务执行类型、任务种类、任务负荷权重,电子设备将任务、任务执行类型、任务种类、任务负荷权重等信息存储于一张新建的表格中,具体地,在该表格中,可基于每个线程对应的任务队列中的任务在表格中有对应的任务属性信息。若任务执行类型为串行执行,则电子设备基于表格中的任务及任务种类信息比对第一资源池中的线程的任务队列中是否有与待处理的任务具有关联关系的任务。
步骤302,若是,则将与该任务相同种类的任务对应的任务队列所属第一候选线程确定为执行该任务对应的线程。
具体地,本实施例中,第一资源池中的线程的任务队列中有与待处理的任务具有关联关系的任务,则将待处理的任务分配至与该任务具有关联关系的任务对应的任务队列所属第一候选线程的任务队列中,由与该任务具有关联关系的任务对应的任务队列所属第一候选线程处理该任务。
步骤303,若否,则从第一候选线程对应的任务队列中确定出包括的任务种类数量最小或包括的任务对应任务负荷权重总和最小的第一目标任务队列,并将第一目标任务队列所属第一候选线程确定为执行该任务对应的线程。
其中,任务负荷权重,是用于表示执行任务所需的算力值对应的权重。具体地,权重值越大,所需的算力越大。
其中,第一目标任务队列,是指缓存任务执行类型为串行执行的待处理的任务的最佳任务队列。
具体地,本实施例中,电子设备获取任务及任务属性信息,任务属性信息中包括任务执行类型、任务种类、任务负荷权重,电子设备将任务、任务执行类型、任务种类、任务负荷权重等信息存储于一张新建的表格中,若第一资源池中的线程的任务队列中没有与待处理的任务具有关联关系的任务,电子设备基于表格中的信息,分别计算第一候选线程中每一个线程对应的任务队列中包括的任务种类数量或包括的任务对应任务负荷权重总和,并对计算得到的第一候选线程中每一个线程对应的任务队列中包括的任务种类数量或包括的任务对应任务负荷权重总和进行升序排序,从而根据第一线程选择策略从第一候选线程对应的任务队列中确定出包括的任务种类数量最小或包括的任务对应任务负荷权重总和最小的第一目标任务队列,并将任务分配至包括的任务种类数量最小或包括的任务对应任务负荷权重总和最小的第一目标任务队列,由第一目标任务队列所属第一候选线程执行该任务对应的线程。
本实施例提供的进程内资源控制方法,任务属性信息还包括任务种类及任务负荷权重,相应地,在按照第一线程选择策略从第一候选线程中确定出执行该任务对应的线程时,根据任务种类从第一候选线程对应的任务队列中确定是否存在与该任务相同种类的任务;若是,则将与该任务相同种类的任务对应的任务队列所属第一候选线程确定为执行该任务对应的线程;若否,则从第一候选线程对应的任务队列中确定出包括的任务种类数量最小或包括的任务对应任务负荷权重总和最小的第一目标任务队列,并将第一目标任务队列所属第一候选线程确定为执行该任务对应的线程。通过判断第一资源池中的线程的任务队列中是否有与待处理的任务具有关联关系的任务,若是,则将与待处理的任务具有关联关系的任务对应的任务队列所属第一候选线程确定为执行该任务对应的线程,可以保证具有关联关系的任务由同一线程进行处理,使任务可以按照一定的顺序执行,防止任务执行顺序发生错乱,保证了任务执行的准确性。若否,则从第一候选线程中每一个线程对应的任务队列中分别计算包括的任务种类数量或包括的任务对应任务负荷权重总和,根据第一线程选择策略从第一候选线程对应的任务队列中确定出包括的任务种类数量最小或包括的任务对应任务负荷权重总和最小的第一目标任务队列,由于第一目标任务队列中包含的任务所需的算力值最小,第一目标任务队列中包含的任务所需处理的时间也最短,所以该任务所需等待处理的时间最短,所以第一目标任务队列所属第一候选线程为执行该任务对应的最佳线程,从而为待处理的任务选择了最优的处理资源,保证任务可以尽快处理,提升了任务的执行效率。
作为一种可选实施方式,本实施例中,步骤2022包括以下步骤:
步骤401,从各第二候选线程对应的任务队列中确定出包括的待执行任务数量最小或包括的任务对应的任务负荷权重总和最小的第二目标任务队列。
其中,第二目标任务队列,是指缓存任务执行类型为并行执行的待处理的任务的最佳任务队列。
具体地,本实施例中,电子设备获取任务及任务属性信息,任务属性信息中包括任务执行类型、任务种类、任务负荷权重,电子设备将任务、任务执行类型、任务种类、任务负荷权重等信息存储于一张新建的表格中,电子设备基于表格中的信息,分别计算第二候选线程中每一个线程对应的任务队列中包括的待处理的任务数量或包括的任务对应任务负荷权重总和,并对计算得到的第二候选线程中每一个线程对应的任务队列中包括的待处理的任务数量或包括的任务对应任务负荷权重总和进行升序排序,从而根据第二线程选择策略从第二候选线程对应的任务队列中确定出包括的待执行任务数量最小或包括的任务对应的任务负荷权重总和最小的第二目标任务队列。
步骤402,将第二目标任务队列所属第二候选线程确定为执行该任务对应的线程。
具体地,本实施例中,确定出包括的待执行任务数量最小或包括的任务对应的任务负荷权重总和最小的第二目标任务队列后,将任务分配至包括的待执行任务数量最小或包括的任务对应的任务负荷权重总和最小的第二目标任务队列,由第二目标任务队列所属第二候选线程执行该任务对应的线程。
本实施例提供的进程内资源控制方法,在按照第二线程选择策略从第二候选线程中确定出执行该任务对应的线程时,从各第二候选线程对应的任务队列中确定出包括的待执行任务数量最小或包括的任务对应的任务负荷权重总和最小的第二目标任务队列;将第二目标任务队列所属第二候选线程确定为执行该任务对应的线程。由于电子设备基于用户配置的各任务负荷权重分别计算第二候选线程对应的任务队列中待处理的任务数量或任务对应任务负荷权重总和,根据第二线程选择策略从第二候选线程对应的任务队列中确定出包括的待执行任务数量最小或包括的任务对应的任务负荷权重总和最小的第二目标任务队列,由于第二目标任务队列中包含的任务所需的算力值最小,第二目标任务队列中包含的任务所需处理的时间也最短,所以该任务所需等待处理的时间最短,所以第二目标任务队列所属第二候选线程为执行该任务的最佳线程,从而为待处理的任务选择了最优的处理资源,保证任务可以尽快处理,提升了任务的执行效率。
图4为本申请又一实施例提供的进程内资源控制方法的流程图,如图4所示,作为一种可选实施方式,本实施例中,进程内资源控制方法还包括以下步骤:
步骤501,按照第一预设周期监测各线程执行状态。
其中,第一预设周期为监控各线程执行状态的周期,可以为2s、3s或其它时间,在此不做具体限定。
具体地,可选地,本实施例中,可由健康管理线程按照第一预设周期监测两个资源池中各线程的执行状态,健康管理线程通过判断两个资源池中各线程是否周期性地发送心跳信息确定各线程地执行状态是否异常。
步骤502,响应于任意一个线程执行状态为异常状态,确定出待接收任务的线程,并将异常线程对应的任务队列中的任务转移至待接收任务的线程对应的任务队列中。
其中,异常线程,是指无法正常运行的线程。
具体地,本实施例中,由于资源管理模块中的线程数量是预先配置好的,资源管理模块先将第一资源池和第二资源池中的线程数量及各线程标识发送至健康管理线程,两个资源池中各线程分别周期性地向健康管理线程发送心跳信息,若健康管理线程未接收到与第一资源池和第二资源池中的线程具有相同数量的心跳信息,则认为未发送心跳信息的线程处于异常状态,通过接收到的心跳信息中的线程标识与资源管理模块向健康管理线程发送的各线程标识作对比,找出未发送心跳信息的线程,并将异常线程对应的任务队列中的任务转移至待接收任务的线程对应的任务队列中。若异常线程对应的任务队列中的任务执行类型为串行执行,则电子设备分别计算第一候选线程对应的任务队列中包括的任务种类数量或任务对应任务负荷权重总和,根据第一线程选择策略从第一候选线程对应的任务队列中确定出包括的任务种类数量最小或包括的任务对应任务负荷权重总和最小的第一目标任务队列,并将任务转移至包括的任务种类数量最小或包括的任务对应任务负荷权重总和最小的第一目标任务队列,由第一目标任务队列所属第一候选线程执行该任务对应的线程。若异常线程对应的任务队列中的任务执行类型为并行执行,则电子设备分别计算第二候选线程对应的任务队列中待处理的任务数量或任务对应任务负荷权重总和,根据第二线程选择策略从第二候选线程对应的任务队列中确定出包括的待执行任务数量最小或包括的任务对应的任务负荷权重总和最小的第二目标任务队列,将任务转移至包括的待执行任务数量最小或包括的任务对应的任务负荷权重总和最小的第二目标任务队列,由第二目标任务队列所属第二候选线程执行该任务对应的线程。
步骤503,对异常线程进行删除。
具体地,本实施例中,在将异常线程对应的任务队列中的任务转移至待接收任务的线程对应的任务队列中之后,健康管理线程删除异常线程。即对异常线程进行注销。
本实施例提供的进程内资源控制方法,还包括:按照第一预设周期监测各线程执行状态;响应于任意一个线程执行状态为异常状态,确定出待接收任务的线程,并将异常线程对应的任务队列中的任务转移至待接收任务的线程对应的任务队列中;对异常线程进行删除。通过健康管理线程周期性地监测两个资源池中各线程的健康状态,可以及时发现异常线程,并将异常线程对应的任务队列中的任务转移至待接收任务的线程对应的任务队列中,防止任务长时间处于异常线程对应的任务队列中导致任务不能及时处理,使任务无法及时执行。
作为一种可选实施方式,本实施例中,步骤501包括以下步骤:
步骤601,按照第二预设周期接收各线程发送的心跳信息,心跳信息中包括线程标识。
其中,第二预设周期为接收各线程心跳信息的周期,可以为1s或其它时间,在此不做具体限定。
其中,心跳信息中包括线程标识及任务执行类型。
其中,线程标识,是指线程的ID,各线程的ID全局唯一。
示例性地,本实施例中,两个资源池中的各线程每间隔1s向健康管理线程发送一次心跳信息,所以健康管理线程可以每间隔1s接收一次各线程发送的心跳信息。
步骤602,响应于根据线程标识确定在第一预设周期接收到任意一个线程发送的心跳信息,确定该线程执行状态为正常。
具体地,本实施例中,健康管理线程按照第二预设周期接收两个资源池中任意一个线程发送的心跳信息,健康管理线程按照第一预设周期根据心跳信息中的线程标识确定发送心跳信息的线程执行状态为正常。
步骤603,响应于根据线程标识确定在第一预设周期未接收到任意一个线程发送的心跳信息,确定该线程执行状态为异常。
具体地,本实施例中,健康管理线程在第二预设周期内未接收到两个资源池中任意一个线程发送的心跳信息,健康管理线程按照第一预设周期根据接收到的心跳信息中的线程标识与资源管理模块向健康管理线程发送的各线程标识作对比,找出未发送心跳信息的线程并确定该线程执行状态为异常。
本实施例提供的进程内资源控制方法,在按照第一预设周期监测各线程执行状态时,按照第二预设周期接收各线程发送的心跳信息,心跳信息中包括线程标识;响应于根据线程标识确定在第一预设周期接收到任意一个线程发送的心跳信息,确定该线程执行状态为正常;响应于根据线程标识确定在第一预设周期未接收到任意一个线程发送的心跳信息,确定该线程执行状态为异常。通过各线程是否发送心跳信息可以确定出各线程是否异常,同时根据心跳信息中的线程标识可以进一步确定具体是哪个线程执行状态为异常,方便对异常线程做进一步处理。
作为一种可选实施方式,本实施例中,进程内资源控制方法还包括以下步骤:
步骤701,按照第三预设周期确定在对应资源池中的线程数量。
其中,第三预设周期为监控各线程数量的周期,可以是2s或3s,在此不做具体限定。
具体地,本实施例中,由于两个资源池中的线程数量是预先配置好的,两个资源池先将第一资源池和第二资源池中的线程数量发送至健康管理线程,两个资源池中各线程按照第二预设周期向健康管理线程发送心跳信息,所以健康管理线程按照第三预设周期确定一次发送心跳信息的线程的数量。
步骤702,响应于线程数量小于预先配置的线程数量,则在对应资源池中创建新的线程,以使创建线程后对应资源池中总线程数量等于预先配置的线程数量。
其中,预先配置的线程数量,是由用户预先进行配置的,资源池可根据用户预先配置的线程数量创建对应数量的线程。
具体地,本实施例中,健康管理线程每间隔2s确定一次发送心跳信息的线程的数量,若第一候选线程数量小于预先配置的线程数量,则调用资源管理模块的增加资源接口,在第一资源池中创建新的线程,使创建线程后第一资源池中总线程数量等于预先配置的线程数量。若第二候选线程数量小于预先配置的线程数量,则调用资源管理模块的增加资源接口,在第二资源池中创建新的线程,使创建线程后第二资源池中总线程数量等于预先配置的线程数量。
本实施例提供的进程内资源控制方法,还包括:按照第三预设周期确定在对应资源池中的线程数量;响应于线程数量小于预先配置的线程数量,则在对应资源池中创建新的线程,以使创建线程后对应资源池中总线程数量等于预先配置的线程数量。通过按照第三预设周期监测对应资源池中的线程数量,发现线程数量小于预先配置的线程数量时可以第一时间调用资源管理模块创建新的线程,防止线程数量与待处理的任务负荷不匹配,导致正常线程负荷超载,通过创建新的线程,使创建线程后对应资源池中总线程数量等于预先配置的线程数量,可以实现对线程数量的控制,同时可以使任务得到及时处理,防止任务执行效率降低。
图5为本申请实施例提供的业务进程结构框架示意图,如图5所示,本申请提供的业务进程结构框架位于电子设备中,业务进程结构框架包括:业务处理模块,任务调度模块,资源管理模块。
其中,业务处理模块,用于接收用户发送的任务、任务属性信息及第一资源池和第二资源池中的线程数量,并向任务调度模块发送任务、任务属性信息及第一资源池和第二资源池中的线程数量。
其中,任务调度模块,用于接收任务调度模块发送的任务、任务属性信息及第一资源池和第二资源池中的线程数量,并按照第一线程选择策略或第二线程选择策略计算各线程当前的工作负荷。任务调度模块包括健康管理线程,其中,健康管理线程用于监测资源管理模块中各线程的健康状态,若监测到线程状态异常,则将该线程的任务转移至其它线程。若监测到线程数量小于预先配置的线程数量,则调用资源管理模块创建新的线程。
其中,资源管理模块,用于创建线程并向任务调度模块的健康管理线程发送线程的数量。
其中,第一资源池,用于处理任务执行类型为串行执行的任务。
其中,第二资源池,用于处理任务执行类型为并行执行的任务。
其中,线程,用于处理任务。
其中,任务队列,用于缓存待处理的任务。
其中,与图5对应的进程内资源控制方法包括以下步骤:
步骤801,获取待处理的至少一个任务及各任务属性信息;任务属性信息包括:任务执行类型;任务执行类型为串行执行或并行执行。
步骤802,响应于任意一个任务对应的任务执行类型为串行执行,将第一资源池中的线程确定为该任务对应的第一候选线程,并按照第一线程选择策略从第一候选线程中确定出执行该任务对应的线程。
步骤803,根据任务种类从第一候选线程对应的任务队列中确定是否存在与该任务相同种类的任务。
步骤804,若是,则将与该任务相同种类的任务对应的任务队列所属第一候选线程确定为执行该任务对应的线程。
步骤805,若否,则从第一候选线程对应的任务队列中确定出包括的任务种类数量最小或包括的任务对应任务负荷权重总和最小的第一目标任务队列,并将第一目标任务队列所属第一候选线程确定为执行该任务对应的线程。
步骤806,响应于任意一个任务对应的任务执行类型为并行执行,将第二资源池中的线程确定为该任务对应的第二候选线程,并按照第二线程选择策略从第二候选线程中确定出执行该任务对应的线程。
步骤807,从各第二候选线程对应的任务队列中确定出包括的待执行任务数量最小或包括的任务对应的任务负荷权重总和最小的第二目标任务队列。
步骤808,将第二目标任务队列所属第二候选线程确定为执行该任务对应的线程。
步骤809,将各任务分配到对应的线程的任务队列中。
步骤810,采用对应线程依次执行对应任务队列中的任务。
步骤811,按照第二预设周期接收各线程发送的心跳信息,心跳信息中包括线程标识。
步骤812,响应于根据线程标识确定在第一预设周期接收到任意一个线程发送的心跳信息,确定该线程执行状态为正常。
步骤813,响应于根据线程标识确定在第一预设周期未接收到任意一个线程发送的心跳信息,确定该线程执行状态为异常。
步骤814,响应于任意一个线程执行状态为异常状态,确定出待接收任务的线程,并将异常线程对应的任务队列中的任务转移至待接收任务的线程对应的任务队列中。
步骤815,对异常线程进行删除。
步骤816,按照第三预设周期确定在对应资源池中的线程数量。
步骤817,响应于线程数量小于预先配置的线程数量,则在对应资源池中创建新的线程,以使创建线程后对应资源池中总线程数量等于预先配置的线程数量。
需要说明的是,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。
本实施例提供的进程内资源控制方法的实现方式与上述实施例中对应步骤的实现方式类似,在此不再一一赘述。
图6为本申请一实施例提供的进程内资源控制装置的结构示意图,如图6所示,本实施例提供的进程内资源控制装置位于电子设备中,则本实施例提供的进程内资源控制装置900包括:获取模块901,确定模块902,分配模块903,执行模块904。
其中,获取模块901,用于获取待处理的至少一个任务及各任务属性信息;任务属性信息包括:任务执行类型;任务执行类型为串行执行或并行执行;确定模块902,用于根据各任务属性信息确定执行各任务对应的线程;线程由进程创建,且位于第一资源池或第二资源池中;第一资源池为串行处理任务对应线程的资源池,第二资源池为并行处理任务对应线程的资源池;第一资源池和第二资源池中线程的数量是预先配置的;分配模块903,用于将各任务分配到对应的线程的任务队列中;执行模块904,用于采用对应线程依次执行对应任务队列中的任务。
本实施例提供的进程内资源控制装置可以执行图2所示的方法实施例,具体的实现原理和技术效果类似,此处不再赘述。
可选地,确定模块902在根据各任务属性信息确定执行各任务对应的线程时,具体用于:响应于任意一个任务对应的任务执行类型为串行执行,将第一资源池中的线程确定为该任务对应的第一候选线程,并按照第一线程选择策略从第一候选线程中确定出执行该任务对应的线程;响应于任意一个任务对应的任务执行类型为并行执行,将第二资源池中的线程确定为该任务对应的第二候选线程,并按照第二线程选择策略从第二候选线程中确定出执行该任务对应的线程。
可选地,任务属性信息还包括任务种类及任务负荷权重。
相应地,确定模块902在按照第一线程选择策略从第一候选线程中确定出执行该任务对应的线程时,具体用于:根据任务种类从第一候选线程对应的任务队列中确定是否存在与该任务相同种类的任务;若是,则将与该任务相同种类的任务对应的任务队列所属第一候选线程确定为执行该任务对应的线程;若否,则从第一候选线程对应的任务队列中确定出包括的任务种类数量最小或包括的任务对应任务负荷权重总和最小的第一目标任务队列,并将第一目标任务队列所属第一候选线程确定为执行该任务对应的线程。
可选地,确定模块902在按照第二线程选择策略从第二候选线程中确定出执行该任务对应的线程时,具体用于:从各第二候选线程对应的任务队列中确定出包括的待执行任务数量最小或包括的任务对应的任务负荷权重总和最小的第二目标任务队列;将第二目标任务队列所属第二候选线程确定为执行该任务对应的线程。
可选地,本实施例提供的进程内资源控制装置,还包括:监测模块,删除模块。
其中,监测模块,用于按照第一预设周期监测各线程执行状态;确定模块902,还用于响应于任意一个线程执行状态为异常状态,确定出待接收任务的线程,并将异常线程对应的任务队列中的任务转移至待接收任务的线程对应的任务队列中;删除模块,用于对异常线程进行删除。
可选地,监测模块在按照第一预设周期监测各线程执行状态时,具体用于:按照第二预设周期接收各线程发送的心跳信息,心跳信息中包括线程标识;响应于根据线程标识确定在第一预设周期接收到任意一个线程发送的心跳信息,确定该线程执行状态为正常;响应于根据线程标识确定在第一预设周期未接收到任意一个线程发送的心跳信息,确定该线程执行状态为异常。
可选地,本实施例提供的进程内资源控制装置,还包括:创建模块。
其中,确定模块902,还用于按照第三预设周期确定在对应资源池中的线程数量;创建模块,用于响应于线程数量小于预先配置的线程数量,则在对应资源池中创建新的线程,以使创建线程后对应资源池中总线程数量等于预先配置的线程数量。
本实施例提供的进程内资源控制装置可以执行图3至图4所示的方法实施例,具体的实现原理和技术效果类似,此处不再赘述。
图7为本申请一实施例提供的电子设备的结构示意图,如图7所示,本实施例提供的电子设备1000包括:处理器1001以及与处理器通信连接的存储器1002。
其中,存储器1002存储计算机执行指令;处理器1001,执行存储器1002存储的计算机执行指令以实现上述任意一个实施例提供的进程内资源控制方法。相关说明可以对应参见附图中的步骤所对应的相关描述和效果进行理解,此处不做过多赘述。
其中,程序可以包括程序代码,程序代码包括计算机执行指令。存储器1002可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
其中,本实施例中,存储器1002与处理器1001通过总线连接。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component Interconnect,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述任意一个实施例提供的进程内资源控制方法。例如,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本申请实施例还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述任意一个实施例提供的进程内资源控制方法。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
进一步需要说明的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解,上述的装置实施例仅是示意性的,本申请的装置还可通过其它的方式实现。例如,上述实施例中单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本申请各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic Random AccessMemory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种进程内资源控制方法,其特征在于,包括:
获取待处理的至少一个任务及各任务属性信息;所述任务属性信息包括:任务执行类型;所述任务执行类型为串行执行或并行执行;
根据各任务属性信息确定执行各任务对应的线程;所述线程由进程创建,且位于第一资源池或第二资源池中;所述第一资源池为串行处理任务对应线程的资源池,所述第二资源池为并行处理任务对应线程的资源池;所述第一资源池和所述第二资源池中线程的数量是预先配置的;
将各任务分配到对应的线程的任务队列中;
采用对应线程依次执行对应任务队列中的任务。
2.根据权利要求1所述的方法,其特征在于,所述根据各任务属性信息确定执行各任务对应的线程,包括:
响应于任意一个任务对应的任务执行类型为串行执行,将第一资源池中的线程确定为该任务对应的第一候选线程,并按照第一线程选择策略从所述第一候选线程中确定出执行该任务对应的线程;
响应于任意一个任务对应的任务执行类型为并行执行,将第二资源池中的线程确定为该任务对应的第二候选线程,并按照第二线程选择策略从所述第二候选线程中确定出执行该任务对应的线程。
3.根据权利要求2所述的方法,其特征在于,所述任务属性信息还包括任务种类及任务负荷权重;
所述按照第一线程选择策略从所述第一候选线程中确定出执行该任务对应的线程,包括:
根据所述任务种类从所述第一候选线程对应的任务队列中确定是否存在与该任务相同种类的任务;
若是,则将与该任务相同种类的任务对应的任务队列所属第一候选线程确定为执行该任务对应的线程;
若否,则从第一候选线程对应的任务队列中确定出包括的任务种类数量最小或包括的任务对应任务负荷权重总和最小的第一目标任务队列,并将所述第一目标任务队列所属第一候选线程确定为执行该任务对应的线程。
4.根据权利要求3所述的方法,其特征在于,所述按照第二线程选择策略从所述第二候选线程中确定出执行该任务对应的线程,包括:
从各第二候选线程对应的任务队列中确定出包括的待执行任务数量最小或包括的任务对应的任务负荷权重总和最小的第二目标任务队列;
将所述第二目标任务队列所属第二候选线程确定为执行该任务对应的线程。
5.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
按照第一预设周期监测各线程执行状态;
响应于任意一个线程执行状态为异常状态,确定出待接收任务的线程,并将异常线程对应的任务队列中的任务转移至待接收任务的线程对应的任务队列中;
对所述异常线程进行删除。
6.根据权利要求5所述的方法,其特征在于,所述按照第一预设周期监测各线程执行状态,包括:
按照第二预设周期接收各线程发送的心跳信息,所述心跳信息中包括线程标识;
响应于根据线程标识确定在第一预设周期接收到任意一个线程发送的心跳信息,确定该线程执行状态为正常;
响应于根据线程标识确定在第一预设周期未接收到任意一个线程发送的心跳信息,确定该线程执行状态为异常。
7.根据权利要求6所述的方法,其特征在于,还包括:
按照第三预设周期确定在对应资源池中的线程数量;
响应于所述线程数量小于预先配置的线程数量,则在对应资源池中创建新的线程,以使创建线程后对应资源池中总线程数量等于预先配置的线程数量。
8.一种进程内资源控制装置,其特征在于,包括:
获取模块,用于获取待处理的至少一个任务及各任务属性信息;所述任务属性信息包括:任务执行类型;所述任务执行类型为串行执行或并行执行;
确定模块,用于根据各任务属性信息确定执行各任务对应的线程;所述线程由进程创建,且位于第一资源池或第二资源池中;所述第一资源池为串行处理任务对应线程的资源池,所述第二资源池为并行处理任务对应线程的资源池;所述第一资源池和所述第二资源池中线程的数量是预先配置的;
分配模块,用于将各任务分配到对应的线程的任务队列中;
执行模块,用于采用对应线程依次执行对应任务队列中的任务。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410200024.5A CN117971491A (zh) | 2024-02-23 | 2024-02-23 | 进程内资源控制方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410200024.5A CN117971491A (zh) | 2024-02-23 | 2024-02-23 | 进程内资源控制方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117971491A true CN117971491A (zh) | 2024-05-03 |
Family
ID=90851120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410200024.5A Pending CN117971491A (zh) | 2024-02-23 | 2024-02-23 | 进程内资源控制方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971491A (zh) |
-
2024
- 2024-02-23 CN CN202410200024.5A patent/CN117971491A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3577561B1 (en) | Resource management for virtual machines in cloud computing systems | |
US7945913B2 (en) | Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system | |
JP6490913B2 (ja) | グリッドコンピューティングシステムの遊休リソースによるタスク実行 | |
US9319281B2 (en) | Resource management method, resource management device, and program product | |
US9870269B1 (en) | Job allocation in a clustered environment | |
CN111818159B (zh) | 数据处理节点的管理方法、装置、设备及存储介质 | |
CN112269641B (zh) | 一种调度方法、装置、电子设备及存储介质 | |
RU2697700C2 (ru) | Равноправное разделение системных ресурсов в исполнении рабочего процесса | |
WO2016011953A1 (en) | Scheduling of service resource | |
US20170017511A1 (en) | Method for memory management in virtual machines, and corresponding system and computer program product | |
CN105528330A (zh) | 负载均衡的方法、装置、丛集和众核处理器 | |
US11119563B2 (en) | Dynamic power capping of multi-server nodes in a chassis based on real-time resource utilization | |
US11861410B2 (en) | Cloud computing burst instance management through transfer of cloud computing task portions between resources satisfying burst criteria | |
US20050102387A1 (en) | Systems and methods for dynamic management of workloads in clusters | |
CN111930493A (zh) | 集群中NodeManager状态管理方法、装置及计算设备 | |
US9384050B2 (en) | Scheduling method and scheduling system for multi-core processor system | |
EP3274828A1 (en) | Methods and nodes for scheduling data processing | |
CN116467082A (zh) | 一种基于大数据的资源分配方法及系统 | |
CN112162839A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
US11074111B2 (en) | Quality of service scheduling with workload profiles | |
JP2023543744A (ja) | リソーススケジューリング方法、システム、電子デバイスおよびコンピュータ可読記憶媒体 | |
CN111930516B (zh) | 一种负载均衡方法及相关装置 | |
CN107203256A (zh) | 一种网络功能虚拟化场景下的节能分配方法与装置 | |
CN117971491A (zh) | 进程内资源控制方法、装置、设备及存储介质 | |
CN110806918A (zh) | 基于深度学习神经网络的虚拟机运行方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |