CN110673940A - 应用程序的任务执行方法及装置、电子设备、存储介质 - Google Patents
应用程序的任务执行方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN110673940A CN110673940A CN201910926339.7A CN201910926339A CN110673940A CN 110673940 A CN110673940 A CN 110673940A CN 201910926339 A CN201910926339 A CN 201910926339A CN 110673940 A CN110673940 A CN 110673940A
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- current performance
- executed
- execution condition
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Abstract
本申请提供一种应用程序的任务执行方法及装置、电子设备、存储介质;该方法应用于电子设备,所述电子设备安装的应用程序上预先创建有多个线程以用于执行相应的任务,针对各个任务配置有相应的执行条件;该方法可以包括:确定待执行任务,并确定与所述待执行任务对应的目标线程和目标执行条件;获取所述电子设备的当前性能状况;判断所述当前性能状况是否符合所述目标执行条件;若符合,则执行所述目标线程以完成所述待执行任务。本申请的技术方案,通过给任务配置执行条件的方式,可以根据电子设备的当前性能状况判断任务对应的线程是否执行,限制了执行中线程的数量,避免给电子设备带来过高的负荷。
Description
技术领域
本申请涉及网络通信技术,尤其涉及一种应用程序的任务执行方法及装置、电子设备、存储介质。
背景技术
在电子设备中安装有应用程序,该应用程序用于与用户进行交互。应用程序的功能需要通过执行任务来实现,而任务的执行则通过执行相应的线程来实现。
随着用户需求的不断增加,软件也被开发出了更多的功能。为了同时获得不同的体验,例如,浏览网页、听音乐等,用户在使用电子设备的时候,通常会同时打开多个应用程序,而每个应用程序又在同时执行多个任务。为了完成这些任务,电子设备需要同时执行大量的线程。
可见,由于用户需求的不断增加,电子设备通常需要同时执行大量的线程,给电子设备带来了极大的负荷。
发明内容
有鉴于此,本申请提供一种应用程序的任务执行方法及装置、电子设备、存储介质,可以有效控制执行中线程的数量,避免给电子设备带来过高的负荷。
为实现上述目的,本申请提供技术方案如下:
根据本申请的第一方面,提出了一种应用程序的任务执行方法,应用于电子设备,所述电子设备安装的应用程序上预先创建有多个线程以用于执行相应的任务,针对各个任务配置有相应的执行条件;所述方法包括:
确定待执行任务,并确定与所述待执行任务对应的目标线程和目标执行条件;
获取所述电子设备的当前性能状况;
判断所述当前性能状况是否符合所述目标执行条件;若符合,则执行所述目标线程以完成所述待执行任务。
可选的,针对各个任务配置有相应的执行周期;所述确定待执行任务,包括:
根据各个任务的执行周期确定执行时刻与当前时刻相匹配的任务,并将确定出的任务作为所述待执行任务。
可选的,执行条件包括针对所述电子设备的当前可用性能要求;其中,对应于任一任务的当前可用性能要求与该任务的重要程度呈负相关。
可选的,所述获取所述电子设备的当前性能状况,包括:
根据下述参数中至少之一确定当前性能指数:所述电子设备的CPU利用率、内存利用率、CPU温度、接收流量、发送流量;
所述判断所述当前性能状况是否符合所述目标执行条件,包括:
判断所述当前性能指数是否处于所述目标执行条件指定的当前性能指数范围内;其中,当所述当前性能指数处于所述当前性能指数范围内时,确定所述当前性能状况符合所述目标执行条件。
可选的,还包括:
接收用户发送的针对指定任务的自定义指令,所述自定义指令包含用户针对所述指定任务的执行条件的修改内容;
根据所述修改内容更新所述指定任务的执行条件。
可选的,在接收到所述自定义指令后,所述方法还包括:
判断所述指定任务是否为预设的核心任务;
若是,则禁止执行针对所述指定任务的执行条件的更新操作。
可选的,针对各个任务设有执行优先级,对应于任一任务的执行优先级与该任务的重要程度呈正相关,在接收到所述自定义指令后,所述方法还包括:
判断所述修改内容是否与执行优先级不同于所述指定任务的其他任务的执行条件存在冲突;
若存在冲突,则禁止执行针对所述指定任务的执行条件的更新操作。
根据本申请的第二方面,提出了一种应用程序的任务执行装置,应用于电子设备,所述电子设备安装的应用程序上预先创建有多个线程以用于执行相应的任务,针对各个任务配置有相应的执行条件;所述装置包括:
确定单元,确定待执行任务,并确定与所述待执行任务对应的目标线程和目标执行条件;
获取单元,获取所述电子设备的当前性能状况;
判断单元,判断所述当前性能状况是否符合所述目标执行条件;若符合,则执行所述目标线程以完成所述待执行任务。
根据本申请的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述实施例中任一所述的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述实施例中任一所述方法的步骤。
由以上技术方案可见,本申请通过给任务配置执行条件,使得电子设备可以结合当前性能状况来执行任务,从而限制了同时执行的线程的数量,避免给电子设备带来过高的负荷。
进一步的,将执行条件设为电子设备的当前可用性能要求,且当前性能要求与任务重要程度呈负相关,使得重要程度相对更高的任务可优先执行,在避免给电子设备带来过高负荷的同时,确保了应用程序重要功能的实现。
附图说明
图1是本申请一示例性实施例示出的一种应用程序的任务执行方法流程图。
图2是本申请一示例性实施例示出的一种具体的应用程序的任务执行方法流程图。
图3是本申请一示例性实施例示出的一种用户自定义执行条件的方法流程图。
图4是本申请一示例性实施例示出的一种核心任务的执行条件保护方法流程图。
图5是本申请一示例性实施例示出的一种用于执行应用程序中的任务的电子设备示意结构图。
图6是本申请一示例性实施例示出的一种应用程序的任务执行装置结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1是本申请一示例性实施例示出的一种应用程序的任务执行方法流程图,该方法应用于电子设备,所述电子设备安装的应用程序上预先创建有多个线程以用于执行相应的任务,针对各个任务配置有相应的执行条件;如图1所示,该方法可以包括以下步骤:
步骤S101,确定待执行任务,并确定与所述待执行任务对应的目标线程和目标执行条件。
在本实施例中,可以针对各个任务配置相应的执行周期,各个任务的执行周期可以相同也可以不同,具体如何设置可以根据实际需求确定,在此不作具体限定。
在该步骤中,应用程序的各个任务可定时执行。因此,在确定待执行任务时,可根据各个任务的执行周期确定执行时刻与当前时刻相匹配的任务,并将确定出的任务作为所述待执行任务。其中,各个任务的执行时刻除了可以通过预先配置的执行周期确定,也可以通过接收用户发送的任务执行指令确定。通过预先配置的执行周期确定执行时刻使得应用程序能够按时完成定时任务,而根据用户发送的任务执行指令确定执行时刻能够实时根据用户需求执行相应的任务。
在本实施例中,给各个任务配置的执行条件可以包括针对电子设备的当前可用性能要求;其中,对应于任一任务的当前可用性能要求与任务的重要程度呈负相关。举例说明:假设,某应用程序中的任务以及给各个任务配置的执行条件对电子设备的当前可用性能要求如表1所示:
表1
那么,在上表中三个任务的重要程度关系为:任务1>任务2>任务3,三个执行条件包括的针对电子设备的当前性能要求高低关系为:要求1<要求2<要求3。
显然,当前可用性能要求与任务的重要程度呈负相关的分配方式,使得应用程序在运行的过程中优先执行重要程度较高的任务,保证了应用程序主要功能的实现。其中,任务的重要程度可由开发人员根据经验设定,具体如何设定在此不作限定。
在本实施例中,用户还可以根据需求对指定任务的执行条件进行自定义,具体步骤可以为:接收用户发送的针对指定任务的自定义指令,所述自定义指令包含用户针对所述指定任务的执行条件的修改内容;根据所述修改内容更新所述指定任务的执行条件。
此外,在用户根据自身需求自定义执行条件的步骤中,还可以对用户自定义的内容进行检测,包括:在接收到所述自定义指令后,判断所述指定任务是否为预设核心任务;若是,则禁止执行针对所述指定任务的执行条件的更新操作。其中,核心任务用于保障应用程序的正常运行,通常给核心任务配置的执行条件对电子设备的当前性能状况要求最低,甚至可以是:无论电子设备当前处于何种性能状况,都执行该核心任务。具体如何设置应用程序核心任务的执行条件可以根据实际情况来设定,在此不作具体限定。
在上述过程中,一方面,用户可以通过自定义的方式,根据自身需求调整各个任务的执行条件,以获得更好的体验。另一方面,通过限制用户修改核心任务的执行条件,避免用户自定义影响核心任务的正常执行而导致应用程序无法正常运行。
在本实施例中,还可以针对各个任务设有执行优先级,对应于任一任务的执行优先级与该任务的重要程度呈正相关。举例而言,假设,在某应用程序中的各个任务与执行优先级的配置关系如表2所示:
任务 | 执行优先级 |
任务0 | 0级 |
任务1 | 1级 |
任务2 | 2级 |
任务3 | 3级 |
表2
任务0-3的重要程度由高到低依次为:任务0、任务1、任务2、任务3。
执行优先级由高到低依次为:0级、1级、2级、3级。
需要说明的是,在给任务设置执行优先级的过程中,可以给每一个任务配置不同的执行优先级,每一个执行优先级也可以包括多个执行条件,但实际操作中,为了便于实现和简化操作,通常将重要程度接近的多个任务配置为同一执行优先级,一个执行优先级仅包含一个执行条件。
在给任务配置执行优先级的情况下,用户自定义的过程还可以进一步对自定义的内容进行校验,包括:判断所述修改内容是否与执行优先级不同于所述指定任务的其他任务的执行条件存在冲突;若存在冲突,则禁止执行针对所述指定任务的执行条件的更新操作。
可见,通过判断修改内容是否与执行优先级不同于指定任务的其他任务的执行条件存在冲突的方式,避免了由于用户自定义执行条件造成修改后的执行条件与配置有其他执行优先级的任务对应的执行条件产生冲突的问题,从而保证了应用程序优先执行重要程度高的任务。
步骤S102,获取所述电子设备的当前性能状况。
在本实施例中,获取所述电子设备的当前性能状况,包括:根据下述参数中至少之一确定当前性能指数:所述电子设备的CPU利用率、内存利用率、CPU温度、接收流量、发送流量。换言之,当前性能指数可以用上述参数中的一个表示,也可以基于一定的算法对上述参数中的几个进行计算得到。例如,可以通过对某几个参数加权平均的方式获得当前性能指数。具体如何确定当前性能指数可以根据实际情况采用不同的方法,在此不作限定。
基于这样确定当前性能指数的方法,能过灵活根据实际情况通过不同的方式获得当前性能指数,以便更准确地衡量电子设备的当前性能状况。
步骤S103,判断所述当前性能状况是否符合所述目标执行条件。
在本实施例中,判断所述当前性能状况是否符合所述目标执行条件,包括:判断所述当前性能指数是否处于所述目标执行条件指定的当前性能指数范围内;其中,当所述当前性能指数处于所述当前性能指数范围内时,确定所述当前性能状况符合所述目标执行条件。
以将CPU利用率作为当前性能指数为例,假设,给当前待执行任务配置的目标执行条件包含的对当前性能指数范围要求为“CPU利用率低于70%”,获得的电子设备的当前性能指数为“CPU利用率为60%”,由于电子设备的当前性能指数低于70%,即在目标执行条件指定的当前性能指数范围内,说明电子设备的当前性能状况符合待执行任务的目标执行条件;反之,若获得的电子设备的当前性能指数为“CPU利用率为80%”,由于电子设备的当前性能指数高于70%,即不在目标执行条件指定的当前性能指数范围内,说明电子设备的当前性能状况不符合待执行任务的目标执行条件。
步骤S104,若符合,则执行所述目标线程以完成所述待执行任务。
由上述技术方案可见,本申请通过给应用程序中的任务配置执行条件的方式,限制了只有电子设备的当前性能状况符合任务的执行条件时才执行对应的线程完成该任务。通过这样的方式,本申请能够较好地根据电子设备地当前性能状况限制执行中的线程数量以控制电子设备负荷的增加,避免给电子设备造成过高的负荷。
为了便于理解,下面结合举例和附图对本申请的技术方案进行详细说明。
在图2和图3示出的2个实施例中,通过介绍“将重要程度接近的多个任务配置为同一执行优先级,对应于同一执行优先级的任务配置同一执行条件”这一便于实现的操作方式,对本申请的技术方案进行说明,其中,以将CPU利用率作为性能指数为例。
参加图2,图2为本申请一示例性实施例示出的一种具体的任务执行方法流程图。如图2所示,该方法包括以下步骤:
步骤S201,根据各个任务的执行周期确定执行时刻与当前时刻相匹配的任务,并将确定出的任务作为待执行任务。
在本实施例中,各个任务的执行时刻除了可以通过预先配置的执行周期确定以外,还可以通过接收用户发送的任务执行指令确定任务的执行时刻。
步骤S202,获取针对所述待执行任务设置的执行优先级,以及所述执行优先级对应的目标执行条件。
在本实施例中,所述目标执行条件包括对电子设备的当前CPU利用率的范围要求。例如,电子设备的CPU利用率低于70%。
步骤S203,获取电子设备的当前CPU利用率。
需要说明的是,在本实施例的介绍中以CPU利用率作为性能指数为例,在实际操作中,具体将何种参数作为性能指数衡量电子设备的性能状况可以根据需求来定。例如,在其他实施例中,可以将内存利用率作为性能指数,也可以给CPU利用率和内存利用率加权后重新计算新的值作为性能指数,具体如何确定性能指数在此不作限定。换言之,在其他实施例中,本步骤中的CPU利用率可用其他性能指数替换。
步骤S204,判断电子设备的当前CPU利用率是否符合所述目标执行条件;若符合,则跳转至步骤S205;若不符合,则跳转至步骤206。
结合步骤S202中的例子对本步骤进行介绍,假设,获取电子设备的当前CPU利用率为60%,即在目标执行条件对电子设备的当前CPU利用率的要求范围内,则跳转至S205;若获取电子设备的当前CPU利用率为80%,即不在目标执行条件对电子设备的当前CPU利用率的要求范围内,则跳转至步骤S206。
步骤S205,获取用于执行所述待执行任务的目标线程,执行所述目标线程以完成所述待执行任务。
在本步骤中,需要注意的是,获取用于执行所述待执行任务的目标线程的过程也可以在步骤S202中进行。
步骤S206,不执行所述待执行任务,等待所述待执行任务的下一个执行周期。
由上述技术方案可见,本申请通过执行优先级划分重要程度不同的任务,使得应用程序能够优先执行重要程度较高的任务。其次,根据任务重要程度分配执行优先级的优势在于,无需对应用程序中的每个任务配置执行条件,只需通过给任务配置执行优先级,根据执行优先级对应的执行条件判断是否执行用于完成该任务的线程即可。显然,相较于直接给任务配置执行条件的方式,给任务配置执行优先级的方法更容易实现。
参见图3,图3为本申请一示例性实施例示出的一种用户自定义执行条件的方法流程图。如图3所示,该方法包括以下步骤:
步骤S301,接收用户发送的针对执行优先级的自定义指令,所述自定义指令包含用户针对所述执行优先级对应的执行条件的修改内容;
在本实施例中,以将CPU利用率作为性能指数为例,假设原先存在三个执行优先级,三个执行优先级与其执行条件的对应关系如表3所示:
执行优先级 | 执行条件 |
1级 | CPU利用率低于90% |
2级 | CPU利用率低于70% |
3级 | CPU利用率低于50% |
表3
那么,在本步骤中,接收到用户的自定义指令可以针对2级优先级,该自定义指令包含的针对2级优先级对应的执行条件的修改内容可以为:将2级优先级对应的执行条件修改为CPU利用率低于80%。修改后的各个执行优先级与其执行条件的对应关系如表4所示:
表4
需要注意的是,在本步骤中,自定义指令包括新增执行优先级的指令。当自定义指令为新增执行优先级的指令时,执行优先级对应的执行条件的修改内容为:设置新的执行优先级,以及对应于新增执行优先级的执行条件。举例而言,在上述三个执行优先级存在的情况下,新增4级优先级,给4级优先级配置执行条件为:CPU利用率低于30%。在这种情况下,修改后的各执行优先级与其执行条件的对应关系如表5所示:
执行优先级 | 执行条件 |
1级 | CPU利用率低于90% |
2级 | CPU利用率低于70% |
3级 | CPU利用率低于50% |
4级 | CPU利用率低于30% |
表5
在本步骤中,通过允许用户自定义执行条件的方式,当系统默认执行条件无法满足用户需求,用户可以根据自身需求修改对应的执行条件以满足自身需求。
步骤S302,判断所述修改内容是否与其他执行优先级对应的执行条件存在冲突;若是,则跳转至步骤S303;若否,则跳转至步骤S304。
继续结合步骤S301中的例子对本步骤进行介绍,假设步骤S301中对2级优先级修改内容不为CPU利用率低于80%,而是CPU利用率低于95%,参见表6。
执行优先级 | 执行条件 |
1级 | CPU利用率低于90% |
2级 | CPU利用率低于95% |
3级 | CPU利用率低于50% |
表6
由表6可知,在这种情况下,由于1级优先级对应的执行条件为CPU利用率低于90%,而1级优先级相对于2级优先级为高位优先级,显然,本次针对2级优先级的修改内容与高位优先级存在冲突。同理,当步骤S301中对2级优先级修改内容为CPU利用率低于40%,参见表7。
执行优先级 | 执行条件 |
1级 | CPU利用率低于90% |
2级 | CPU利用率低于40% |
3级 | CPU利用率低于50% |
表7
由表7可知,由于3级优先级对应的执行条件为CPU利用率低于50%,而3级优先级相对于2级优先级为低位优先级,显然,本次针对2级优先级的修改内容与低位优先级存在冲突。
当修改内容与高位优先级或低位优先级存在冲突时,跳转至步骤S303。倘若,如步骤S301中的情况,针对2级优先级对应的执行条件的修改内容为:将2级优先级对应的执行条件修改为CPU利用率低于80%。显然,与高位优先级和低位优先级均不存在冲突,则跳转至步骤S304。
针对新增执行优先级的情况,假设新增的执行优先级对应的执行条件为CPU利用率低于60%,显然与3级优先级存在冲突,(判断方式同修改2级优先级对应的执行条件的情况)则跳转至步骤S303。倘若,如步骤S301中的情况,新增的执行优先级对应的执行条件为CPU利用率低于30%,显然与其他执行优先级对应的执行条件不存在冲突,则跳转至步骤S304。
在本步骤中,通过判断用户针对执行优先级对应的执行条件的修改内容是否与其他执行优先级对应的执行条件存在冲突的方式,能够及时检测到用户自定义执行条件的操作中可能导致应用程序中的任务无法正常执行的操作。
步骤S303,禁止更新所述执行优先级对应的执行条件。
继续结合步骤S302中的例子对本步骤进行介绍,当在步骤S302中判断出针对2级优先级对应的执行条件的修改内容与其他执行优先级对应的执行条件存在冲突时,取消执行针对2级优先级对应的执行条件的更新操作,即保持2级优先级对应的执行条件为CPU利用率低于70%不变。若判断出新增的执行优先级对应的执行条件与其他执行优先级对应的执行条件存在冲突,则取消新增执行优先级的操作。
当检测到存在冲突时,还可以对用户进行提醒,以便用户重新发送新的自定义指令满足自身需求。
在本步骤中,通过禁止执行修改内容与其他执行优先级对应的执行条件存在冲突的更新操作,防止用户自定义操作导致执行优先级对应的执行条件之间存在冲突。换言之,通过排除用户自定义操作导致的多个执行优先级对应的执行条件之间产生冲突的状况,保证了应用程序中任务的正常执行。
步骤S304,根据所述修改内容更新所述执行优先级对应的执行条件。
由上述技术方案可见,本申请通过引入用户自定义的方式,允许用户根据自身需求对执行优先级对应的执行条件进行修改,以便用户获得更好的使用体验。但同时,通过检测用户修改内容是否造成与其他未修改的执行优先级对应的执行条件产生冲突的方式,防止用户自定义造成执行优先级的执行条件产生冲突,保证了应用程序优先执行重要程度较高的任务。
在本申请中,应用程序的任务中还包括预设的核心任务,针对核心任务,本申请还提供了专门的保护机制。为方便理解,结合具体实施例介绍如何保护核心任务的执行条件不被修改。
参见图4,图4为本申请一示例性实施例示出的一种核心任务的执行条件保护方法流程图。如图4所示,该方法包括以下步骤:
步骤S401,接收用户发送的针对指定任务的自定义指令,所述自定义指令包括针对所述指定任务的执行条件的修改内容。
步骤S402,判断所述指定任务是否为预设的核心任务;若是则跳转至步骤S403;若否,则跳转至步骤S404。
在本实施例中,应用程序中的核心任务用于保障应用程序的正常运行,通常给核心任务配置的执行条件对电子设备的当前性能状况要求最低,甚至可以是:无论电子设备当前处于何种性能状况,都执行该核心任务。例如,以将CPU利用率作为性能指数为例,核心任务的执行条件对CPU利用率没有要求。
在给应用程序中的任务配置执行优先级的操作方式中,若给要核心任务配置执行优先级,通常给核心任务配置最高位优先级,承接于图3中的举例,可以给核心任务的执行优先级配置0级优先级,0级优先级对应的执行条件对CPU利用率没有要求。在实际情况中,例如电子设备接收日志这一任务对应用程序的核心功能有极大的影响,类似于接收日志这一类极为重要的任务,通常给该类任务配置最高位优先级。
在本实施例中,给核心任务配置的执行条件对电子设备的当前性能状况要求最低,甚至对当前性能状况没有要求,使得无论电子设备的当前性能状况处于何种状态,核心任务都能够执行,保证了应用程序的正常运行。
步骤S403,禁止执行针对核心任务的执行条件的更新操作。
在本实施例中,当检测到指定任务为预设的核心任务,则禁止执行针对核心任务的执行条件的更新操作。例如,结合步骤S402中的例子,在给应用程序中的任务配置执行优先级的操作方式中,若确定指定任务为核心任务,则禁止对0级优先级对应的执行条件进行修改。
在本步骤中,通过禁止执行针对核心任务的执行条件的更新操作,防止核心任务的执行条件被用户修改,保证了核心任务的正常执行,进一步保证了应用程序的正常运行。
步骤S404,根据所述修改内容执行针对所述指定任务的执行条件的更新操作。
倘若在本实施例中采用给应用程序中的任务配置执行优先级的操作方式,在本步骤中,当检测到指定任务并非核心任务时,还可以跳转至图3所示实施例中的步骤S302,判断步骤S401中修改内容是否与其他执行优先级对应的执行条件存在冲突。只有当确定不存在冲突时,才会对给指定任务配置的执行优先级对应的执行条件进行更新。
由以上技术方案可见,本申请在用户对任务的执行条件进行自定义时,通过判断用户指定的任务是否为应用程序的核心任务,并禁止用户对核心任务的执行条件进行修改,确保了应用程序的核心任务正常执行,从而保证了应用程序核心功能的实现。
图5示出了根据本申请的一示例性实施例的电子设备示意结构图。请参考图5,在硬件层面,该电子设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行,在逻辑层面上形成应用程序的任务执行装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
与前述一种应用程序的任务执行方法的实施例相对应,本申请还提供了一种应用程序的任务执行装置的实施例。
参见图6,图6是本申请一示例性实施例示出的一种应用程序的任务执行装置结构图。在软件实施方式中,该应用程序的任务执行装置可以包括:
确定单元610,确定待执行任务,并确定与所述待执行任务对应的目标线程和目标执行条件;
获取单元620,获取所述电子设备的当前性能状况;
判断单元630,判断所述当前性能状况是否符合所述目标执行条件;若符合,则执行所述目标线程以完成所述待执行任务。
可选的,所述确定单元610具体用于:
根据各个任务的执行周期确定执行时刻与当前时刻相匹配的任务,并将确定出的任务作为所述待执行任务。
可选的,所述获取单元620具体用于:
根据下述参数中至少之一确定当前性能指数:所述电子设备的CPU利用率、内存利用率、CPU温度、接收流量、发送流量。
可选的,所述判断单元630具体用于:
判断所述当前性能指数是否处于所述目标执行条件指定的当前性能指数范围内;其中,当所述当前性能指数处于所述当前性能指数范围内时,确定所述当前性能状况符合所述目标执行条件。
可选的,还包括:
接收单元640,所述接收单元640用于:
接收用户发送的针对指定任务的自定义指令,所述自定义指令包含用户针对所述指定任务的执行条件的修改内容。
可选的,还包括:
自定义单元650,根据接收到的自定义指令中包含的修改内容更新所述指定任务的执行条件。
可选的,所述判断单元630进一步用于判断接收到的自定义指令针对的指定任务是否为应用程序的核心任务。
可选的,所述自定义单元650进一步用于:
当接收到的自定义指令针对的指定任务是应用程序的核心任务时,禁止执行针对所述核心任务的执行条件的更新操作。
可选的,还包括:
优先级设置单元660,根据应用程序中各个任务的重要程度给任务配置执行优先级,其中,对应于任一任务的执行优先级与该任务的重要程度呈正相关。
可选的,所述判断单元630进一步用于:
判断所述修改内容是否与执行优先级不同于所述指定任务的其他任务的执行条件存在冲突;若存在冲突,则禁止执行针对所述指定任务的执行条件的更新操作。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中,可以执行多个步骤的单元,也可以通过创建多个分离部件分别进行所述多个步骤。针对不同的需求,可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由应用程序的任务执行装置的处理器执行以实现如上述实施例中任一所述的方法,比如该方法可以包括:确定待执行任务,并确定与所述待执行任务对应的目标线程和目标执行条件;获取所述电子设备的当前性能状况;判断所述当前性能状况是否符合所述目标执行条件;若符合,则执行所述目标线程以完成所述待执行任务。
其中,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等,本申请并不对此进行限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种应用程序的任务执行方法,其特征在于,应用于电子设备,所述电子设备安装的应用程序上预先创建有多个线程以用于执行相应的任务,针对各个任务配置有相应的执行条件;所述方法包括:
确定待执行任务,并确定与所述待执行任务对应的目标线程和目标执行条件;
获取所述电子设备的当前性能状况;
判断所述当前性能状况是否符合所述目标执行条件;若符合,则执行所述目标线程以完成所述待执行任务。
2.根据权利要求1所述的方法,其特征在于,针对各个任务配置有相应的执行周期;所述确定待执行任务,包括:
根据各个任务的执行周期确定执行时刻与当前时刻相匹配的任务,并将确定出的任务作为所述待执行任务。
3.根据权利要求1所述的方法,其特征在于,执行条件包括针对所述电子设备的当前可用性能要求;其中,对应于任一任务的当前可用性能要求与该任务的重要程度呈负相关。
4.根据权利要求1所述的方法,其特征在于,
所述获取所述电子设备的当前性能状况,包括:根据下述参数中至少之一确定当前性能指数:所述电子设备的CPU利用率、内存利用率、CPU温度、接收流量、发送流量;
所述判断所述当前性能状况是否符合所述目标执行条件,包括:判断所述当前性能指数是否处于所述目标执行条件指定的当前性能指数范围内;其中,当所述当前性能指数处于所述当前性能指数范围内时,确定所述当前性能状况符合所述目标执行条件。
5.根据权利要求1所述的方法,其特征在于,还包括:
接收用户发送的针对指定任务的自定义指令,所述自定义指令包含用户针对所述指定任务的执行条件的修改内容;
根据所述修改内容更新所述指定任务的执行条件。
6.根据权利要求5所述的方法,其特征在于,在接收到所述自定义指令后,所述方法还包括:
判断所述指定任务是否为预设的核心任务;
若是,则禁止执行针对所述指定任务的执行条件的更新操作。
7.根据权利要求5所述的方法,其特征在于,针对各个任务设有执行优先级,对应于任一任务的执行优先级与该任务的重要程度呈正相关,在接收到所述自定义指令后,所述方法还包括:
判断所述修改内容是否与执行优先级不同于所述指定任务的其他任务的执行条件存在冲突;
若存在冲突,则禁止执行针对所述指定任务的执行条件的更新操作。
8.一种应用程序的任务执行装置,其特征在于,应用于电子设备,所述电子设备安装的应用程序上预先创建有多个线程以用于执行相应的任务,针对各个任务配置有相应的执行条件;所述装置包括:
确定单元,确定待执行任务,并确定与所述待执行任务对应的目标线程和目标执行条件;
获取单元,获取所述电子设备的当前性能状况;
判断单元,判断所述当前性能状况是否符合所述目标执行条件;若符合,则执行所述目标线程以完成所述待执行任务。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910926339.7A CN110673940A (zh) | 2019-09-27 | 2019-09-27 | 应用程序的任务执行方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910926339.7A CN110673940A (zh) | 2019-09-27 | 2019-09-27 | 应用程序的任务执行方法及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110673940A true CN110673940A (zh) | 2020-01-10 |
Family
ID=69079702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910926339.7A Pending CN110673940A (zh) | 2019-09-27 | 2019-09-27 | 应用程序的任务执行方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110673940A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782295A (zh) * | 2020-06-29 | 2020-10-16 | 珠海豹趣科技有限公司 | 一种应用程序的运行方法、装置、电子设备及存储介质 |
CN112099955A (zh) * | 2020-09-27 | 2020-12-18 | 合肥移瑞通信技术有限公司 | 安卓系统运行内存的控制方法、装置及介质、计算机设备 |
CN113674749A (zh) * | 2021-08-26 | 2021-11-19 | 珠海格力电器股份有限公司 | 一种控制方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546946A (zh) * | 2012-01-05 | 2012-07-04 | 中国联合网络通信集团有限公司 | 移动终端处理任务的方法及装置 |
CN109445926A (zh) * | 2018-11-09 | 2019-03-08 | 杭州玳数科技有限公司 | 数据任务调度方法及数据任务调度系统 |
CN109614222A (zh) * | 2018-10-30 | 2019-04-12 | 成都飞机工业(集团)有限责任公司 | 一种多线程资源分配方法 |
CN109901920A (zh) * | 2019-01-18 | 2019-06-18 | 中国平安财产保险股份有限公司 | 任务调度方法及装置、电子终端 |
US20190196867A1 (en) * | 2017-12-21 | 2019-06-27 | Qualcomm Incorporated | System and method of priority-based interrupt steering |
-
2019
- 2019-09-27 CN CN201910926339.7A patent/CN110673940A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546946A (zh) * | 2012-01-05 | 2012-07-04 | 中国联合网络通信集团有限公司 | 移动终端处理任务的方法及装置 |
US20190196867A1 (en) * | 2017-12-21 | 2019-06-27 | Qualcomm Incorporated | System and method of priority-based interrupt steering |
CN109614222A (zh) * | 2018-10-30 | 2019-04-12 | 成都飞机工业(集团)有限责任公司 | 一种多线程资源分配方法 |
CN109445926A (zh) * | 2018-11-09 | 2019-03-08 | 杭州玳数科技有限公司 | 数据任务调度方法及数据任务调度系统 |
CN109901920A (zh) * | 2019-01-18 | 2019-06-18 | 中国平安财产保险股份有限公司 | 任务调度方法及装置、电子终端 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782295A (zh) * | 2020-06-29 | 2020-10-16 | 珠海豹趣科技有限公司 | 一种应用程序的运行方法、装置、电子设备及存储介质 |
CN111782295B (zh) * | 2020-06-29 | 2023-08-29 | 珠海豹趣科技有限公司 | 一种应用程序的运行方法、装置、电子设备及存储介质 |
CN112099955A (zh) * | 2020-09-27 | 2020-12-18 | 合肥移瑞通信技术有限公司 | 安卓系统运行内存的控制方法、装置及介质、计算机设备 |
CN113674749A (zh) * | 2021-08-26 | 2021-11-19 | 珠海格力电器股份有限公司 | 一种控制方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110673940A (zh) | 应用程序的任务执行方法及装置、电子设备、存储介质 | |
EP2921954A1 (en) | Virtual machine allocation method and apparatus | |
CN110362402B (zh) | 一种负载均衡方法、装置、设备及可读存储介质 | |
US9401869B1 (en) | System and methods for sharing memory subsystem resources among datacenter applications | |
US20110016247A1 (en) | Multiprocessor system and multiprocessor system interrupt control method | |
CN105791254B (zh) | 网络请求处理方法、装置及终端 | |
WO2013088519A1 (ja) | マルチコア・プロセッサ | |
US10425293B2 (en) | Network resource allocation proposals | |
CN112214288B (zh) | 基于Kubernetes集群的Pod调度方法、装置、设备和介质 | |
CN113391910A (zh) | 任务处理方法、装置、计算机设备及存储介质 | |
CN113703975A (zh) | 模型分配方法、装置、电子设备及计算机可读存储介质 | |
CN106294192A (zh) | 内存分配方法、内存分配装置及服务器 | |
CN110192178A (zh) | 程序打补丁的方法、装置、微控制单元和终端设备 | |
CN111143063A (zh) | 任务的资源预约方法及装置 | |
CN112015326A (zh) | 集群数据处理方法、装置、设备及存储介质 | |
US20120042322A1 (en) | Hybrid Program Balancing | |
CN111459634B (zh) | 任务调度方法、装置、终端及存储介质 | |
JP2024016782A (ja) | リソース割り当ての決定方法、装置、計算装置及びコンピュータプログラム | |
CN111913852B (zh) | 存储系统的健康管理方法和装置 | |
CN112506648A (zh) | 一种虚拟网络功能实例的流量无状态迁移方法及电子设备 | |
CN107710162B (zh) | 电子控制装置及栈使用方法 | |
KR20150002270A (ko) | 멀티 코어 시스템에서 태스크를 분배하기 위한 방법 및 그 전자 장치 | |
CN110704461A (zh) | 一种数据校验方法、装置、计算机设备及可读存储介质 | |
CN111221535B (zh) | 线程分配方法、服务器及计算机可读存储介质 | |
CN111190721A (zh) | 移动终端中处理应用程序的方法及移动终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200110 |