发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案:
第一方面,提供了一种资源的调度方法,包括:
接收目标算法对资源的调用请求;调用请求包括目标算法请求调用的资源类别、资源占用量和调用时长;资源类别包括CPU资源和GPU资源;
基于调用请求根据当前资源占用信息查询符合资源类别和资源占用量的目标资源;
若查询到目标算法可用的目标资源,在调用时长内调用目标资源以运行目标算法;
查询与目标算法对应的延迟释放时长,若调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源。
在第一方面的可选实施例中,资源的调度方法还包括:
若未查询到目标算法可用的目标资源,将调用请求存储于请求队列中;
针对于请求队列中的每一个调用请求,执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
在第一方面的可选实施例中,针对于请求队列中的每一个调用请求,执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源,包括:
根据每一个调用请求的接收时间,对请求队列中的至少一个调用请求进行排序;
基于对调用请求的排序,依次执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
在第一方面的可选实施例中,针对于请求队列中的每一个调用请求,执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源,包括:
查询每一个调用请求对应的目标算法的紧急调用级别,依据紧急调用级别对请求队列中的至少一个调用请求排序;
基于对调用请求的排序,依次执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
在第一方面的可选实施例中,查询与目标算法对应的延迟释放时长之前,还包括:
确定目标算法的调用类别;调用类别包括占用不释放类别和占用后释放类别;
查询与目标算法对应的延迟释放时长,包括:
若目标算法的调用类别为占用后释放类别,查询与目标算法对应的延迟释放时长。
在第一方面的可选实施例中,资源的调度方法还包括:
若目标算法的调用类别为占用不释放类别,调用目标资源以运行目标算法,并持续调用目标资源以等待接收目标算法的新的调用请求。
在第一方面的可选实施例中,在调用时长内调用目标资源以运行目标算法之后,还包括:
根据目标资源的资源类别、资源占用量和调用时长,对当前资源占用信息进行更新。
第二方面,提供了一种资源的调度装置,包括:
接收模块,用于接收目标算法对资源的调用请求;调用请求包括目标算法请求调用的资源类别、资源占用量和调用时长;资源类别包括CPU资源和GPU资源;
查询模块,用于基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源;
第一调用模块,用于若查询到目标算法可用的目标资源,在调用时长内调用目标资源以运行目标算法;
释放模块,用于查询与目标算法对应的延迟释放时长,若调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源。
在第二方面的可选实施例中,资源的调度装置还包括存储模块,存储模块用于:
若未查询到目标算法可用的目标资源,将调用请求存储于请求队列中;
针对于请求队列中的每一个调用请求,执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
在第二方面的可选实施例中,存储模块在针对于请求队列中的每一个调用请求,执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源时,具体用于:
根据每一个调用请求的接收时间,对请求队列中的至少一个调用请求进行排序;
基于对调用请求的排序,依次执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
在第二方面的可选实施例中,存储模块在针对于请求队列中的每一个调用请求,执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源时,具体用于:
查询每一个调用请求对应的目标算法的紧急调用级别,依据紧急调用级别对请求队列中的至少一个调用请求排序;
基于对调用请求的排序,依次执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
在第二方面的可选实施例中,资源的调度装置还包括确定模块,确定模块用于:
确定目标算法的调用类别;调用类别包括占用不释放类别和占用后释放类别;
释放模块在查询与目标算法对应的延迟释放时长时,具体用于:
若目标算法的调用类别为占用后释放类别,查询与目标算法对应的延迟释放时长。
在第二方面的可选实施例中,资源的调度装置还包括第二调用模块,第二调用模块用于:
若目标算法的调用类别为占用不释放类别,调用目标资源以运行目标算法,并持续调用目标资源以等待接收目标算法的新的调用请求。
在第二方面的可选实施例中,资源的调度装置还包括更新模块,更新模块用于:
根据目标资源的资源类别、资源占用量和调用时长,对当前资源占用信息进行更新。
第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现本申请第一方面所示的资源的调度方法。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示的资源的调度方法。
本申请提供的技术方案带来的有益效果是:
当接收到目标算法对资源的调用请求时,调用目标资源一定的调用时长以运行目标算法,并查询目标算法的延迟释放时长,若调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源,可以在满足目标算法对目标资源的使用,并且在调用目标资源后,及时释放目标资源,以提供给其他算法调用,有效减少资源的浪费。
进一步的,可以先确定目标算法的调用类别,对于占用不释放类别的目标算法,即便根据调用时长运行完,也不用释放目标算法,可以满足这类别的目标算法的长期调用目标资源的要求。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请提供的资源的调度方法、装置、电子设备及计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请提供的资源的调度方法,可以应用于如图1所示的应用环境中。具体的,服务器或终端中设置有资源的调度系统,资源类别包括CPU资源和GPU资源;当资源的调度系统接收到目标算法的调用请求时,查询可用的目标资源,若查询到符合调用请求的目标资源,在调用时长内调用目标资源以运行目标算法;若调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源。
本申请实施例中提供了一种可能的实现方式,如图2所示,提供了一种资源的调度方法,可以应用于图1所示的资源的调度系统中,可以包括以下步骤:
步骤S201,接收目标算法对资源的调用请求;调用请求包括目标算法请求调用的资源类别、资源占用量和调用时长;资源类别包括CPU资源和GPU资源。
其中,目标算法可以包括多种需要调用CPU资源或GPU资源的算法,也可以包括需要调用资源的模型、服务等等。
例如,目标算法可以包括多种AI推理模型、ADC应用模型或AI训练模型。
具体的,资源占用量是指需要调用的资源容量,调用时长是指调用资源的时长。
在具体实施过程中,资源的调度系统通过统一的访问地址接收调用请求,例如采用HTTP协议,固定统一的访问地址,将统一的访问地址注册于各个不同算法或模型的系统中,便于各个不同的算法或模型请求调用资源。
步骤S202,基于调用请求根据当前资源占用信息查询符合资源类别和资源占用量的目标资源。
具体的,资源的调度系统中实时对当前资源占用信息进行监测,当前资源占用信息可以包括不同类型的资源的正在调用量、剩余调用时长、可用资源量等等。
例如,当前资源占用信息可以包括总共资源有3块CPU资源,其中2块正在被调用,被调用的2块CPU中1块还需要被调用5分钟,另一块还需要被调用10分钟,3块CPU中还有一块是可用资源。
步骤S203,若查询到目标算法可用的目标资源,在调用时长内调用目标资源以运行目标算法。
具体的,可以根据当前资源占用信息查询可用资源量,判断目标算法请求调用的资源类型中可用资源量是否不小于请求调用的资源占用量;若请求调用的资源类型中可用资源量满足目标算法请求调用的资源占用量,则查询到目标算法可用的目标资源。
在具体实施过程中,若资源的调度系统查询到目标算法可用的目标资源,可以是资源的调度系统调用目标资源,然后将目标资源供应与目标算法运行;也可以是资源的调度系统查询到目标算法可用的目标资源,目标算法直接调用目标资源。
步骤S204,查询与目标算法对应的延迟释放时长,若调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源。
其中,释放的目标资源包括所调用的资源,还可以包括所占用的内存。
具体的,延迟释放时长是指目标算法在调用目标资源运行调用时长后,继续保持调用目标资源的时间,设置延迟释放时长,可以避免需要频繁调用资源的目标算法,在运行完后直接释放资源,但又需要重新调用目标资源,导致操作繁琐。
若调用目标资源调用时长后,在延迟释放时长内接收到目标算法对资源的新的调用请求,则重复调用目标资源调用时长,然后继续等待延迟释放时长,直至在调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源。
在具体实施过程中,资源的调用系统可以直接释放目标资源,也可以控制目标算法释放目标资源,具体针对目标资源的释放方式在此不作限制。
上述的资源的调度方法,当接收到目标算法对资源的调用请求时,调用目标资源一定的调用时长以运行目标算法,并查询目标算法的延迟释放时长,若调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源,可以在满足目标算法对目标资源的使用,并且在调用目标资源后,及时释放目标资源,以提供给其他算法调用,有效减少资源的浪费。
本申请实施例中提供了一种可能的实现方式,如图3所示,资源的调度方法还可以包括:
步骤S205,若未查询到目标算法可用的目标资源,将调用请求存储于请求队列中。
具体的,可以根据当前资源占用信息查询可用资源量,判断目标算法请求调用的资源类型中可用资源量是否不小于请求调用的资源占用量;若请求调用的资源类型中可用资源量不满足目标算法请求调用的资源占用量,则未查询到目标算法可用的目标资源。
步骤S206,针对于请求队列中的每一个调用请求,执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
具体的,请求队列中可以包括至少一个调用请求,当请求队列中包括至少两个调用请求时,可以按照对调用请求的接收时间对多个调用请求进行排序,也可以按照调用请求的紧急程度对调用请求进行排序,对请求队列中的至少两个调用请求,依次执行查询可调用的目标资源,并且可以循环执行查询任务。
如图4所示,请求队列中存储有N个算法发送的调用请求,其中,N为大于2的自然数,资源的调度系统可以按照队列中调用请求的顺序,依次查询与调用请求1、调用请求2……直至调用请求N对应的资源,可以在查询完整个请求队列后,循环从调用请求1开始继续查询,查询到符合任一个调用请求的资源,即调用该资源供对应的算法运行。
在一种实施过程中,步骤S206的针对于请求队列中的每一个调用请求,执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源,可以包括:
(1)根据每一个调用请求的接收时间,对请求队列中的至少一个调用请求进行排序;
(2)基于对调用请求的排序,依次执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
具体的,可以根据请求队列中的每一个调用请求的接收时间,将请求队列中所包括的所有调用请求进行排序。
例如,先接收到的调用请求,先执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
在另一种实施过程中,步骤S206的针对于请求队列中的每一个调用请求,执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源,可以包括:
(1)查询每一个调用请求对应的目标算法的紧急调用级别,依据紧急调用级别对请求队列中的至少一个调用请求排序;
(2)基于对调用请求的排序,依次执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
具体的,也可以根据目标算法的紧急调用级别对请求队列中的所有调用请求进行排序,紧急调用级别越高,对应的目标算法越重要、越紧急,可以先执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
本申请实施例中提供了一种可能的实现方式,步骤S204的查询与目标算法对应的延迟释放时长之前,还可以包括:确定目标算法的调用类别;调用类别包括占用不释放类别和占用后释放类别。
其中,占用不释放类别是指目标算法调用目标资源后,即便根据调用时长运行完,也不用释放目标算法,这种类别的算法需要调用目标资源较频繁,或者目标算法本身需要持续调用目标资源不能间断。
本申请实施例中提供了一种可能的实现方式,步骤S204的查询与目标算法对应的延迟释放时长,可以包括:若目标算法的调用类别为占用后释放类别,查询与目标算法对应的延迟释放时长。
具体的,占用后释放类别是指目标算法调用目标资源运行调用时长后,需要释放目标资源,这类目标算法对于目标资源的调用不太频繁,不需要持续调用目标资源不间断,因此调用完后,如果在延迟释放时长内未接受到目标算法的新的调用申请,资源的调用系统可以释放目标资源。
本申请实施例中提供了一种可能的实现方式,资源的调度方法还可以包括:
若目标算法的调用类别为占用不释放类别,调用目标资源以运行目标算法,并持续调用目标资源以等待接收目标算法的新的调用请求。
具体的,若目标算法的调用类别为占用不释放类别,即算法需要调用目标资源较频繁,或者目标算法本身需要持续调用目标资源不能间断,在调用时长内调用目标资源以运行目标算法后,保持持续调用目标资源,等待接收目标算法的新的调用请求,并重复依据新的调用请求运行目标算法。
本申请实施例中提供了一种可能的实现方式,步骤S03的在调用时长内调用目标资源以运行目标算法之后,还可以包括:
根据目标资源的资源类别、资源占用量和调用时长,对当前资源占用信息进行更新。
具体的,若查询到目标资源,需要对当前资源占用信息进行更新,以便根据下一个目标算法的调用请求查询更新后的资源占用信息。
可以理解的是,当调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源后,同样需要根据所释放的目标资源的资源类别、资源占用量和调用时长,对更新后的资源占用信息再次更新。
本申请实施例中提供了一种可能的实现方式,若请求队列中的调用请求的数量超过预设阈值,或者请求队列中的多个调用请求持续保持等待的时间超过预设时间,还可以发送超负荷提醒到用户终端,提醒用户终端进行资源的扩增。
上述的资源的调度方法,当接收到目标算法对资源的调用请求时,调用目标资源一定的调用时长以运行目标算法,并查询目标算法的延迟释放时长,若调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源,可以在满足目标算法对目标资源的使用,并且在调用目标资源后,及时释放目标资源,以提供给其他算法调用,有效减少资源的浪费。
进一步的,可以先确定目标算法的调用类别,对于占用不释放类别的目标算法,即便根据调用时长运行完,也不用释放目标算法,可以满足这类别的目标算法的长期调用目标资源的要求。
为了便于理解,以下将结合具体示例详细阐述本发明的资源的调度方法:
在一个示例中,如图5所示,本申请提供的资源的调度方法,包括如下步骤:
步骤S501,接收目标算法对资源的调用请求;
步骤S502,根据当前资源占用信息查询是否存在目标算法可用的目标资源;若存在,执行步骤S503;若不存在,执行步骤S508;
步骤S503,在调用时长内调用目标资源以运行目标算法;
步骤S504,确定目标算法的调用类别;若调用类别为占用后释放类别,执行步骤S505;若调用类别为占用不释放类别,执行步骤S507;
步骤S505,查询与目标算法对应的延迟释放时长;
步骤S506,若调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源;
步骤S507,调用目标资源以运行目标算法,并持续调用目标资源以等待接收目标算法的新的调用请求;
步骤S508,将调用请求存储于请求队列中;
步骤S509,针对请求队列中的每一个调用请求,执行步骤S502。
上述示例中,当接收目标算法对资源的调用请求时,根据当前资源占用信息查询是否存在目标算法可用的目标资源;若存在,调用目标资源一定的调用时长以运行目标算法;确定目标算法的调用类别;若调用类别为占用后释放类别,查询与目标算法对应的延迟释放时长;调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源,可以及时释放目标资源,以提供给其他算法调用,有效减少资源的浪费。
本申请实施例中提供了一种可能的实现方式,如图6所示,提供了一种资源的调度装置60,包括接收模块601、查询模块602、第一调用模块603和释放模块604,其中,
接收模块601,用于接收目标算法对资源的调用请求;调用请求包括目标算法请求调用的资源类别、资源占用量和调用时长;资源类别包括CPU资源和GPU资源;
查询模块602,用于基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源;
第一调用模块603,用于若查询到目标算法可用的目标资源,在调用时长内调用目标资源以运行目标算法;
释放模块604,用于查询与目标算法对应的延迟释放时长,若调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源。
本申请实施例中提供了一种可能的实现方式,资源的调度装置60还包括存储模块,存储模块用于:
若未查询到目标算法可用的目标资源,将调用请求存储于请求队列中;
针对于请求队列中的每一个调用请求,执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
在第二方面的可选实施例中,存储模块在针对于请求队列中的每一个调用请求,执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源时,具体用于:
根据每一个调用请求的接收时间,对请求队列中的至少一个调用请求进行排序;
基于对调用请求的排序,依次执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
在第二方面的可选实施例中,存储模块在针对于请求队列中的每一个调用请求,执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源时,具体用于:
查询每一个调用请求对应的目标算法的紧急调用级别,依据紧急调用级别对请求队列中的至少一个调用请求排序;
基于对调用请求的排序,依次执行基于调用请求在当前资源占用信息中查询符合资源类别和资源占用量的目标资源。
在第二方面的可选实施例中,资源的调度装置60还包括确定模块,确定模块用于:
确定目标算法的调用类别;调用类别包括占用不释放类别和占用后释放类别;
释放模块在查询与目标算法对应的延迟释放时长时,具体用于:
若目标算法的调用类别为占用后释放类别,查询与目标算法对应的延迟释放时长。
在第二方面的可选实施例中,资源的调度装置60还包括第二调用模块,第二调用模块用于:
若目标算法的调用类别为占用不释放类别,调用目标资源以运行目标算法,并持续调用目标资源以等待接收目标算法的新的调用请求。
在第二方面的可选实施例中,资源的调度装置60还包括更新模块,更新模块用于:
根据目标资源的资源类别、资源占用量和调用时长,对当前资源占用信息进行更新。
上述的资源的调度装置,当接收到目标算法对资源的调用请求时,调用目标资源一定的调用时长以运行目标算法,并查询目标算法的延迟释放时长,若调用目标资源调用时长后,在延迟释放时长内未接收到目标算法对资源的新的调用请求,释放目标资源,可以在满足目标算法对目标资源的使用,并且在调用目标资源后,及时释放目标资源,以提供给其他算法调用,有效减少资源的浪费。
进一步的,可以先确定目标算法的调用类别,对于占用不释放类别的目标算法,即便根据调用时长运行完,也不用释放目标算法,可以满足这类别的目标算法的长期调用目标资源的要求。
本公开实施例的图片的资源的调度装置可执行本公开的实施例所提供的一种图片的资源的调度方法,其实现原理相类似,本公开各实施例中的图片的资源的调度装置中的各模块所执行的动作是与本公开各实施例中的图片的资源的调度方法中的步骤相对应的,对于图片的资源的调度装置的各模块的详细功能描述具体可以参见前文中所示的对应的图片的资源的调度方法中的描述,此处不再赘述。
基于与本公开的实施例中所示的方法相同的原理,本公开的实施例中还提供了一种电子设备,该电子设备可以包括但不限于:处理器和存储器;存储器,用于存储计算机操作指令;处理器,用于通过调用计算机操作指令执行实施例所示的资源的调度方法。与现有技术相比,本申请中的资源的调度方法可以在满足目标算法对目标资源的使用,并且在调用目标资源后,及时释放目标资源,以提供给其他算法调用,有效减少资源的浪费。
在一个可选实施例中提供了一种电子设备,如图7所示,图7所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本申请中的资源的调度方法可以在满足目标算法对目标资源的使用,并且在调用目标资源后,及时释放目标资源,以提供给其他算法调用,有效减少资源的浪费。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,接收模块还可以被描述为“用于接收调用请求的模块”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。