CN112445588A - 应用任务的处理方法、装置、设备及可读存储介质 - Google Patents

应用任务的处理方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN112445588A
CN112445588A CN201910838691.5A CN201910838691A CN112445588A CN 112445588 A CN112445588 A CN 112445588A CN 201910838691 A CN201910838691 A CN 201910838691A CN 112445588 A CN112445588 A CN 112445588A
Authority
CN
China
Prior art keywords
task
target application
thread
application
sub
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
Application number
CN201910838691.5A
Other languages
English (en)
Inventor
甘荣霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910838691.5A priority Critical patent/CN112445588A/zh
Publication of CN112445588A publication Critical patent/CN112445588A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种应用任务的处理方法、装置、设备及可读存储介质。该方法包括:加载当前待处理的、具有相同的预设任务类型的所有目标应用任务;根据与目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所有目标应用任务;在执行所有目标应用任务之后,向用户展示与目标应用任务对应的目标应用功能。

Description

应用任务的处理方法、装置、设备及可读存储介质
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种应用任务的处理方法、装置、设备及可读存储介质。
背景技术
随着互联网技术的飞速发展和智能终端的普及,越来越多的用户习惯于通过智能手机、掌上电脑、平板电脑这类电子设备上安装的应用(Application,APP),访问网络获取对应的应用服务。
用户在对电子设备中安装的应用实施应用操作以获取应用服务时,应用的响应速度是影响用户的应用服务获取体验的关键因素之一。而应用的响应速度,取决于应用处理应用操作所触发的应用任务的处理时长。例如,当用户点击应用的可视化图标来启动应用时,应用的响应速度就取决于应用处理与应用启动相关的启动任务的启动时间。
而随着应用提供的应用服务日趋多样化和复杂化,应用处理应用操作所触发的应用任务的处理时长也相应增加,影响应用的响应速度,相应地也令用户可获取的应用服务体验受到影响。例如,对于一些提供较为复杂的视频搜索、播放服务的视频类应用,平均的启动时间都在数秒以上,整体启动响应速度较慢,十分影响用户体验,特别是在需要频繁启动视频类应用的场景中,问题尤为突出。
发明内容
本发明的一个目的是提供一种用于处理应用任务的新技术方案。
根据本发明的第一方面,提供了一种应用任务的处理方法,其中,包括:
加载当前待处理的、具有相同的预设任务类型的所有目标应用任务;
根据与所述目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所述所有目标应用任务;
在执行所有所述目标应用任务之后,向用户展示与所述目标应用任务对应的目标应用功能。
可选地,所述方法还包括:
更新所述任务处理信息。
可选地,所述任务处理信息中包括每个所述目标应用任务的任务处理指示;所述任务处理指示至少包括每个所述目标应用任务所对应的任务处理阶段以及任务执行线程;每个所述任务处理阶段具有对应的执行次序;所述任务执行线程包括主线程或子线程;
所述根据与所述目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所述所有目标应用任务的步骤包括:
根据所述任务处理信息,基于每个所述任务处理阶段的执行次序,顺序设置所述主线程以及至少一个子线程,并发执行所述处于同一个所述任务处理阶段的全部所述目标应用任务。
可选地,所述方法还包括:
在向用户展示所述目标应用功能之后,设置至少一个子线程处理与所述目标应用任务关联的闲时任务;
其中,所述闲时任务的任务优先级低于所述目标应用任务的任务优先级。
可选地,所述更新所述任务处理信息包括:
监测到根据所述任务处理信息执行所述目标应用任务导致应用崩溃时,设置所述任务处理信息为预设的初始默认信息;
和/或,
监测到根据所述任务处理信息执行所述目标应用任务导致应用崩溃时,通过设置所述任务处理信息,使得导致应用崩溃的目标应用任务被屏蔽不再执行。
可选地,
所述任务处理信息中包括每个所述目标应用任务的任务处理指示;所述任务处理指示至少包括每个所述目标应用任务所对应的任务执行线程;所述任务执行线程包括主线程或子线程;
所述更新所述任务处理信息包括:
在执行所有所述目标应用任务之后,分别获取所述主线程以及每个所述子线程执行对应的每个所述目标应用任务的执行结果参数;
根据所述主线程以及每个所述子线程执行对应的每个所述目标应用任务的执行结果参数,调整每个所述目标应用任务的任务执行线程,得到更新后的所述任务处理信息,供下次执行对应的所述目标应用任务时使用。
可选地,所述执行结果参数至少包括任务执行时间;所述根据所述主线程以及每个所述子线程执行对应的每个所述目标应用任务的任务执行时间,调整每个所述目标应用任务的任务执行线程的步骤包括:
根据所述主线程以及每个所述子线程执行对应的每个所述目标应用任务的任务执行时间,得到所述主线程以及每个所述子线程的任务执行总时长;
根据所述主线程以及每个所述子线程的任务执行总时长,遍历所述主线程以及每个所述子线程,调整所述主线程以及每个所述子线程上处理的所述目标应用任务,使得所述主线程以及每个所述子线程上的任务执行预测总时长中任意两者的差值在预设的差值阈值内;
其中,所述主线程以及每个所述子线程上的任务执行预测总时长,是根据调整后的所述主线程以及每个所述子线程上处理的所述目标应用任务,以及已获取的每个所述目标应用任务的任务执行时间得到的;
根据调整后的所述主线程以及每个所述子线程上处理的所述目标应用任务,调整每个所述目标应用任务的任务执行线程。
可选地,所述方法还包括:
调整所述主线程以及每个所述子线程上处理的所述目标应用任务,使得调整的每个所述目标应用任务的任务执行线程,符合预设的应用任务白名单;
其中,所述应用任务白名单用于指示必须通过所述主线程执行的所述目标应用任务。
可选地,所述方法还包括:
获取触发所述目标应用任务的用户所具有的用户特征;
以所述用户特征作为任务处理模型的输入,获取对应的输出结果,作为初始的所述任务处理信息或者更新后的所述任务处理信息;所述任务处理模型包括根据样本集通过神经网络训练得到的机器学习模型;所述样本集中每个样本包括一个具有对应的所述用户特征的用户,对根据实际的所述任务执行信息执行所述目标应用任务给予的反馈信息。
根据本发明的第二方面,提供一种视频应用的启动任务的处理方法,其中,包括:
响应于视频应用的启动操作,加载当前待处理的所有启动任务;
根据与所述启动任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所述启动任务;
在执行所有所述启动任务之后,提供完成启动的所述视频应用供用户使用。根据本发明的第三方面,提供一种应用任务的处理装置,其中,包括:
任务加载单元,用于加载当前待处理的、具有相同的预设任务类型的所有目标应用任务;
任务执行单元,用于根据与所述所有目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所述所有目标应用任务;
功能展示单元,用于在执行所有所述目标应用任务之后,向用户展示与所述目标应用任务对应的目标应用功能。
根据本发明的第四方面,提供一种应用任务的处理设备,其中,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述应用任务的处理设备执行本发明的第一方面的应用任务的处理方法或本发明的第二方面的视频应用的启动任务的处理方法。
根据本发明的第五方面,提供一种可读存储介质,其中,所述可读存储介质中存储有可被计算机读取执行的计算机程序,所述计算机程序用于在被计算机读取运行时,执行如本发明的第一方面的应用任务的处理方法或本发明的第二方面的视频应用的启动任务的处理方法。
根据本公开的一个实施例,通过加载待处理的具有相同的预设任务类型的所有目标应用任务,根据与目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所有目标应用任务,在执行所有目标应用任务之后,向用户展示与目标应用任务对应的目标应用功能,极大降低应用任务的处理时长,提高应用的响应速度,相应提升用户的应用服务获取体验。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是显示可用于实现本发明的实施例的电子设备的硬件配置的例子的框图。
图2示出了本发明的实施例中应用任务的处理方法的流程图。
图3示出了本发明的实施例中根据任务处理信息的指示处理目标应用任务的例子的示意图。
图4示出了本发明的实施例中调整主线程以及每个子线程上处理的目标应用任务的例子的示意图。
图5示出了本发明的实施例中根据任务执行时间调整主线程以及每个子线程上处理的目标应用任务的例子的示意图。
图6示出了本发明的实施例中根据任务执行状态调整主线程以及每个子线程上处理的目标应用任务的例子的示意图。
图7示出了本发明的实施例中应用任务的处理方法的例子的示意图。
图8示出了本发明的实施例中视频应用的启动任务的处理方法的例子的示意图。
图9示出了本发明的实施例中应用任务的处理装置3000的框图。
图10示出了本发明的实施例中应用任务的处理设备4000的框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是示出可以实现本发明的实施例的电子设备1000的硬件配置的框图。
电子设备1000可以是便携式电脑、台式计算机、手机、平板电脑等。如图1所示,电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括Wifi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
图1所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本发明实施例提供的任意一项应用任务的处理方法。本领域技术人员应当理解,尽管在图1中对电子设备1000示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,电子设备1000只涉及处理器1100和存储装置1200。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<实施例>
本实施例中提供一种应用任务的处理方案,通过加载待处理的具有相同的预设任务类型的所有目标应用任务,根据与目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所有目标应用任务,在执行所有目标应用任务之后,向用户展示与目标应用任务对应的目标应用功能,极大降低应用任务的处理时长,提高应用的响应速度,相应提升用户的应用服务获取体验。
<方法>
在本实施例中,提供一种应用任务的处理方法。该应用任务是对应的应用响应于用户的操作,提供某个特定的应用服务或者应用功能时,需要处理或执行的任务。应用任务可以根据具体任务种类或内容不同,划分不同的任务类型。例如,应用任务可以是用户点击应用触发应用启动时应用需要执行的启动任务,启动任务可以根据具体的任务内容进一步细分,比如启动任务包括与应用启动相关的稳定性监控任务、数据库初始化配置任务、网络初始化配置任务、应用统计初始化配置任务、应用免流量配置任务、首页框架初始化任务、首屏广告初始化任务等等,应用具体提供的功能或服务不同,应用的启动任务具体任务内容也可能不同,在此不再一一列举。例如,应用任务还可以是加载播放页面的任务,清除应用的缓存文件的任务等等。
该应用任务的处理方法,如图2所示,包括:步骤S2100-S2300。
步骤S2100,加载当前待处理的、具有相同的预设任务类型的所有目标应用任务。
预设任务类型是期望加载处理的应用任务的任务类型,可以根据具体的应用场景或者应用需求设置。例如,预设任务类型是启动任务,对应的目标应用任务是启动任务,在步骤S2100中加载当前待处理的所有启动任务。
在实际应用中,通常可以通过任务文件记录或者索引对应的应用在提供应用服务可能涉及的所有应用任务,在步骤S2100中可以从任务文件中加载符合预设任务类型的所有目标应用任务,以便结合后续步骤,在处理完所有目标应用任务之后,展示与目标应用任务对应的目标应用功能。或者,为了提高任务加载效率,也可以预先生成记录或者索引所有符合预设任务类型的目标应用任务以供直接加载。
应当理解的,在本实施例中,目标应用任务可以是同一个应用中具有相同的预设任务类型的应用任务,也可以是多个不同的应用中相同的预设任务类型的应用任务。
步骤S2200,根据与目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所有目标应用任务。
任务处理信息与目标应用任务对应,用于指示目标应用任务的处理相关信息。在本实施例中,任务处理信息在执行当前的目标应用任务之前获取,例如,可以根据目标应用任务的执行历史获取,更具体的,可以在上一次执行所有目标应用任务之后,分别获取主线程以及每个所述子线程执行对应的每个目标应用任务的任务执行时间来更新对应的任务处理信息,具体如下文所述,在此不再赘述。
线程是操作系统能够进行运算调度的最小单位。一个应用下可以有多个线程,包括主线程和子线程。应用的主线程是应用开始时就执行的线程。应用只有一个主线程。子线程是被主线程创建的其他线程。主线程和子线程分别执行各自的应用任务,互不影响。
在本实施中,任务处理信息可以包括指示每个目标应用任务的任务执行线程,该任务执行线程可以是主线程或子线程。根据任务处理信息的指示,可以根据当前实施本实施例的、运行与目标应用任务对应的应用的设备上的设备处理能力,设置通过主线程以及一个或多个子线程来并发处理所有目标应用任务,可以对于设备处理能力较高的设备,设置主线程以及多个子线程来并发处理所有目标应用任务;可以对于设备处理能力较低的设备,设置主线程以及一个子线程来并发处理所有目标应用任务,从而实现根据设备处理能力灵活设置并发处理目标应用任务,获取更高的处理效率。该设备处理能力可以是设备当前占用率低于预设的占用率阈值的可用处理器的处理器数目或者是设备自身配置的处理器数目,通常处理器数目越多,处理能力越高。
根据任务处理信息,设置主线程以及至少一个子线程并发执行所有目标应用任务,实现利用多个线程同时处理多个目标应用任务,减少处理完所有目标应用任务的处理耗时,提高处理效率。此外,通过任务处理信息的设置,可以灵活调整主线程以及每个子线程上分别执行的具体的目标应用任务,提高多个线程并发处理应用任务的效率。
在一个例子中,任务处理信息中包括每个目标应用任务的任务处理指示;任务处理指示至少包括每个目标应用任务所对应的任务处理阶段以及任务执行线程;每个任务处理阶段具有对应的执行次序;任务执行线程包括主线程或子线程。
在本例中,具有相同的任务类型的所有目标应用任务,根据每个目标应用任务具体的任务内容不同,可以对应设计处于不同的任务处理阶段。任务处理阶段具有对应的任务处理次序。每一个任务处理阶段的目标应用任务,需要依赖前一个任务处理阶段的一个或多个目标应用任务的处理结果。每个任务处理阶段可以包括一个或多个具有相同的任务类型的、根据任务处理次序可以并行处理的目标应用任务。
在本例中的任务处理阶段,根据具体的应用场景或者应用需求,结合要执行的所有目标应用任务进行设置。例如,可以根据目标应用任务对应的预设任务类型以及所有的目标应用任务涉及的任务内容,设置任务处理阶段的数量,即目标应用任务所对应的任务处理阶段可以不局限于单一、固定的阶段数目,通过任务处理阶段的设置灵活配合对应的目标应用任务;又例如,可以根据目标应用任务对应的预设任务类型以及所有的目标应用任务涉及的任务内容,设置一个任务处理阶段中还包括若干个任务处理阶段作为该任务处理阶段的任务处理子阶段,每个任务处理子阶段还可以继续包括任务处理子阶段等等,每个任务处理子阶段中的目标应用任务执行后,才能执行下一个任务处理子阶段的目标应用任务,每个任务处理阶段所包括的任务处理子阶段的目标应用任务依次执行完成后,才能执行下一个任务处理阶段的目标应用任务,通过如此层叠设置的应用处理阶段,对应可以实现目标应用任务的层叠嵌套的递归式执行,使得目标应用任务的执行更为灵活,效率更高。
在本例中,步骤S2200可以包括:
根据任务处理信息,基于每个任务处理阶段的执行次序,顺序设置主线程和至少一个子线程,并发执行处于同一个任务处理阶段的全部目标应用任务。
假设,如图3所示,所有目标应用任务包括任务A、B、C、D、E、F、G,分别处于顺序的三个任务处理阶段1-3,其中,任务A、B、C处于任务处理阶段1,任务D、E处于任务处理阶段2,任务F、G处于任务处理阶段3;任务处理信息中指示任务A、B、C、D、E、F、G分别所处的任务处理阶段,并指示了任务A、D、F的任务执行线程是主线程,其他任务的执行线程是子线程;
根据任务处理信息中所指示的任务处理阶段的执行次序,可以如图3所示,设置主线程串行处理A、D、F;在主线程处理任务A时,设置两个子线程并行分别处理B、C或者一个子线程处理B、C;在处理任务A、B、C之后,主线程处理任务D时,继续设置一个子线程与主线程并发处理E;在处理任务D、E之后,主线程处理任务F时,继续设置一个子线程与主线程并发处理G。应当理解的是,图3中仅是示意性地示出一个子线程,并不是限制子线程的数目。
本例中,通过任务处理信息的指示,对于处于不同任务处理阶段的目标应用任务,顺序设置主线程和至少一个子线程并发执行处理,可以针对不同的目标应用任务所处的任务处理阶段,有效设置主线程以及子线程之间处理不同的目标应用任务的次序,进一步提高任务处理效率。
步骤S2300,在执行所有目标应用任务之后,向用户展示与目标应用任务对应的目标应用功能。
目标应用功能是与目标应用任务对应的应用相关功能。例如,目标应用任务的任务类型不同,对应的目标应用功能的实际功能内容也不同,具体地,以目标应用任务的任务类型是启动任务为例,在执行所有启动任务之后,对应的应用完成启动,可以通过应用界面,展示渲染完成的、包括应用的相关功能入口的应用首页,向用户展示对应的应用启动功能。对应的,目标应用任务不同,对应的目标应用功能不同,在此不一一列举。
在执行所有目标应用任务之后、向用户展示与目标应用任务对应的目标应用功能,可以给予用户直观的应用任务处理响应。在本实施例中,通过前述步骤,根据与目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所有目标应用任务,实现利用多个线程同时处理多个目标应用任务,减少处理完所有目标应用任务的处理耗时,相应地,可以提升在执行所有目标应用任务之后、向用户展示与目标应用任务对应的目标应用功能的速度,给予用户更快的应用响应体验。
在一个例子中,本实施例中提供的应用任务处理方法,还可以包括:
步骤S2400,在向用户展示目标应用功能之后,设置至少一个子线程处理与目标应用任务关联的闲时任务。
其中,闲时任务的任务优先级低于目标应用任务的任务优先级。
闲时任务是与目标应用任务关联的、任务优先级低于目标应用任务的任务优先级的应用任务。例如,根据目标应用任务的任务类型不同,对应的闲时任务的任务类型或者任务内容对应也不同。以目标应用任务为启动任务为例,非闲时任务可以包括稳定性监控任务、数据库初始化配置任务、网络初始化配置任务、应用统计初始化配置任务、应用免流量配置任务、首页框架初始化任务、首屏广告初始化任务,与启动任务关联的闲时任务可以包括对应应用的热点资源预加载任务、应用的历史记录的上传任务、未完成的下载任务、部分稳定性防护任务等等。
这些与目标应用任务关联的闲时任务在现有技术中通常是与目标应用任务放在相同的任务处理阶段处理,在本例中,在所有目标应用任务处理完成、并且向用户展示与目标应用任务对应的目标应用功能之后,设置一个至少一个子线程处理与目标应用任务关联的闲时任务,可以避免闲时任务与目标应用任务在同一任务处理阶段处理带来的目标应用任务处理耗时的增加,同时避免闲时任务在主线程处理会阻塞主线程,相应能降低目标应用任务处理耗时,提高目标应用任务的处理效率。
在另一个例子中,本实施例中提供的应用任务处理方法,在步骤S2300之后,也就是在执行所有目标应用任务,向用户展示与目标应用任务对应的目标应用功能之后,还可以包括步骤S2700。
步骤S2700,根据所有目标应用任务的完成情况或者根据实际需求的变化情况,将待处理的闲时任务改为新的非闲时任务并且为新的非闲时任务生成任务处理信息,以及将新的非闲时任务加入到当前待处理的目标应用任务之中。
在步骤S2700之后,加载当前待处理的目标应用任务,执行步骤S2200,根据与目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行目标应用任务。
在本例中,可以根据所有目标应用任务的完成情况或者根据实际需求的变化情况,将闲时任务改为非闲时任务,以更灵活地执行非闲时任务,提升应用任务的处理效率。
在一个实施例中,本实施例中提供的应用任务处理方法,还可以包括:
更新所述任务处理信息。以下将结合具体实施例来详细描述更新任务处理信息的具体步骤。例如,更新任务处理新的处理步骤可以包括:
步骤S2401,监测到根据任务处理信息执行目标应用任务导致应用崩溃时,设置任务处理信息为预设的初始默认信息;
和/或,
步骤S2402,监测到根据任务处理信息执行目标应用任务导致应用崩溃时,通过设置任务处理信息,使得导致应用崩溃的目标应用任务被屏蔽不再执行。
在实际应用中,根据任务处理信息,设置主线程以及至少一个子线程并发执行目标应用任务,可能会由于线程冲突、线程阻塞等各种原因,出现应用崩溃(例如,目标应用任务是启动任务时,可能会出现应用启动崩溃)。
在本例中,可以实时监控主线程以及并发的子线程根据任务处理信息处理目标应用任务的处理状态。在监测到根据任务处理信息执行目标应用任务导致应用崩溃时,设置任务处理信息为预设的初始默认信息,实现任务处理信息初始化,以保证后续根据任务处理信息执行目标应用任务不会出现异常。该初始默认信息可以是依据工程经验或者实验结果设置的、能确保正常执行目标应用任务的任务处理信息,具体内容与具体的应用场景或者应用需求对应,在此不做限定。
在本例中,监测到根据任务处理信息执行目标应用任务导致应用崩溃时,还可以通过设置任务处理信息,使得导致应用崩溃的目标应用任务被屏蔽不再执行,避免后续继续执行导致应用崩溃的目标应用任务,继续导致应用崩溃。具体地,可以通过应用任务黑名单来记录导致应用崩溃的目标应用任务,再根据应用任务黑名单来设置任务处理信息,使得导致应用崩溃的目标应用任务被屏蔽不再执行。
根据本例中公开的内容,本领域技术人员在实际应用中,可以根据实际需求,在监测到根据任务处理信息执行目标应用任务导致应用崩溃时,选择上述步骤S2401或S2402来处理,或者同时应用步骤S2401和S2402来处理。
再一个例子中,任务处理信息中包括每个目标应用任务的任务处理指示;任务处理指示至少包括每个目标应用任务所对应的任务执行线程;任务执行线程包括主线程或子线程。
在本例中,更新任务处理信息的处理步骤还可以包括下述步骤S2510-S2520。
步骤S2510,在执行所有目标应用任务之后,分别获取主线程以及每个子线程执行对应的每个目标应用任务的执行结果参数。
执行结果参数是对应的目标应用任务执行后、与执行结果相关的参数。执行结果参数可以包括任务执行时间、任务执行状态等。
线程执行每个应用任务时都会耗费对应的任务执行时间。在本例中,在通过主线程以及一个或多个子线程并发执行所有目标应用任务之后,可以根据线程自身的任务执行记录等信息,统计获取主线程以及每个子线程执行对应的每个目标应用任务的任务执行时间。
线程执行每个应用任务后会得到对应的任务执行状态,包括任务正常执行、任务异常终止等。任务异常终止可能会导致应用崩溃。
步骤S2520,根据主线程以及每个子线程执行对应的每个目标应用任务的执行结果参数,调整每个目标应用任务的任务执行线程,得到更新后的任务处理信息,供下次对应的所述目标应用任务时使用。
根据主线程以及每个子线程执行对应的每个目标应用任务的执行结果参数,调整每个目标应用任务的任务执行线程,可以根据本次目标应用任务的执行状况,实时、动态调整主线程以及每个子线程上执行的目标应用任务,对应完成任务处理信息的更新,实现在线上完成任务处理信息的“自学习”,对应提高后续多个线程并发处理应用任务的效率。
例如,如图4所示,目标应用任务包括任务A、B、C、D、E、F、G,本次通过主线程处理了任务A、D、F,子线程1处理了任务B、E,子线程2处理了任务C、G,获得每个目标任务的执行结果参数,然后,根据每个目标任务的执行结果参数,调整每个目标应用任务的任务执行线程,得到更新后的任务处理信息:通过主线程处理任务C、D、F,子线程1处理任务B、E,子线程2处理任务A、G。更具体的一个例子中,执行结果参数至少包括任务执行时间,步骤S2520可以包括步骤S2521-S2523。
步骤S2521,根据主线程以及每个子线程执行对应的每个目标应用任务的任务执行时间,得到主线程以及每个子线程的任务执行总时长。
根据主线程以及每个子线程执行对应的每个目标应用任务的任务执行时间,可以分别计算在本次处理所有目标应用任务的过程中,主线程、每个子线程的任务执行总时长。
步骤S2522,根据主线程以及每个子线程的任务执行总时长,遍历主线程以及每个子线程,调整主线程以及每个子线程上处理的目标应用任务,使得主线程以及每个子线程上的任务执行预测总时长中任意两者的差值在预设的差值阈值内。
其中,主线程以及每个子线程上的任务执行预测总时长,是根据调整后的主线程以及每个子线程上处理的目标应用任务,以及已获取的每个目标应用任务的任务执行时间得到的。
差值阈值是判断任意两个线程之间(包括主线程与任意一个子线程之间以及任意两个子线程之间)的任务执行预测总时长是否符合预期调整目的的阈值,具体的差值阈值的数值可以根据具体的应用场景或者应用需求设置,例如,可以将差值阈值设置为所有线程的任务执行总时长之和的10%。
通过调整主线程以及每个子线程上处理的目标应用任务,使得主线程以及每个子线程上的任务执行预测总时长中任意两者的差值在预设的差值阈值内,实现均衡主线程以及每个子线程上处理的目标应用任务,尽可能令主线程以及每个子线程能同时执行完对应的目标应用任务,获取最高的并发处理效率。
以下将以举例说明步骤S2520的实施。在图5中,任务下方的矩形条的宽度表征了其任务执行时间,线程下方的矩形条的宽度表征了线程内的所有任务的任务执行时间的总和。假设,如图5所示,目标应用任务包括任务A、B、C、D、E、F、G,本次通过主线程处理了任务A、D、F,子线程1处理了任务B、E,子线程2处理了任务C、G。其中任务A、B、C、D、E、F、G的任务执行时间分别为500毫秒、400毫秒、300毫秒、300毫秒、300毫秒、100毫秒、200毫秒。对应的,主线程的任务执行总时长为900毫秒,子线程1的任务执行总时长为700毫秒,子线程2的任务执行总时长为500毫秒,假设差值阈值为100毫秒,主线程与任意一个子线程的任务执行总时长的差值大于差值阈值;可以根据任务执行总时长对主线程以及子线程1、2进行降序排序,根据降序排序次序遍历主线程、子线程1、子线程2,对遍历的每个线程尝试调整该线程上处理的任务调整到其他线程上获取对应的每个线程的任务执行预测总时长,计算任意两个线程之间的任务执行预测总时长差值,判断是否在差值阈值内,调整可以从耗时最长的任务开始,例如,先遍历耗时最长的主线程,将主线程上耗时最长的任务A调整到子线程2上,将子线程2上处于相同的应用处理阶段的任务C调整到主线程上,子线程1不调整,如图5所示,对应得到主线程的任务执行预测总时长(任务C、D、F的任务执行时间总和)为700毫秒,子线程1的任务执行预测总时长还是700毫秒,子线程2的任务执行预测总时长(任务A、G的任务执行时间总和)为700毫秒,任意两个线程之间的任务执行预测总时长差值在预设的差值阈值100毫秒内,符合调整目的。
应当理解的是,在本例中,为了进一步提高处理效率,可以在主线程以及每个子线程上的任务执行总时长中任意两者的差值超出预设的差值阈值后,才触发指向步骤S2520调整主线程以及每个子线程上处理的目标应用任务。
在又一个例子中,本实施例中提供的应用任务处理方法,在步骤2200中,根据预设的子线程的数量以及根据与所述目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所述所有目标应用任务。也就是说,步骤2200中设置子线程时,是按照预设的子线程的数量来设置对应个数的子线程。
对应的,在本例中,在步骤S2300之后,还可以包括步骤2900。步骤2900,获取主线程以及每个子线程执行对应的每个目标应用任务的执行结果参数,根据目标应用任务的执行结果参数重新设置子线程的数量。例如,根据执行结果参数,对于每个线程分别计算线程执行任务的总时长,然后计算全部线程执行任务的总时长的平均值,如果平均值大于预设的时长阈值,说明即使更新任务处理信息调整目标应用任务的任务执行线程,也可能无法满足用户期望,在这种情况下需要增加子线程的数量。例如,上述图5所示的例子中,主线程的任务执行总时长为900毫秒,子线程1的任务执行总时长为700毫秒,子线程2的任务执行总时长为500毫秒,全部3个线程的任务执行总时长的平均值等于700毫秒,预设的时长阈值为600毫秒,全部3个线程执行任务的总时长的平均值(700毫秒)大于预设的时长阈值(600毫秒),则需要将预设的子线程的数量修改为3个甚至更多个,供下次执行对应的所述目标应用任务时使用,从而提高后续并发处理应用任务的效率。
在另一个例子中,执行结果参数可以包括任务执行状态。例如,如图6所示,目标应用任务包括任务A、B、C、D、E、F、G,本次通过主线程处理了任务C、D、F,子线程1处理了任务B、E,子线程2处理了任务A、G,获得每个目标任务的执行结果参数,发现任务A的执行状态出现异常导致崩溃,调整每个目标应用任务的任务执行线程,恢复为最近一次执行任务状态未出现异常的任务处理信息:通过主线程处理任务A、D、F,子线程1处理任务B、E,子线程2处理任务C、G。
在实际应用中,具有相同的任务类型的每个目标应用任务,具体的任务内容可能不同,而有些任务内容必须由主线程执行,对应的,这些目标应用任务必须在主线程执行,如果调整到子线程上执行,会导致执行异常。对此,在本例中,在步骤S2522中还可以包括:
步骤S25221,调整主线程以及每个子线程上处理的目标应用任务,使得调整的每个目标应用任务的任务执行线程,符合预设的应用任务白名单。
其中,应用任务白名单用于指示必须通过主线程执行的目标应用任务。
通过使得调整的每个目标应用任务的任务执行线程,符合应用任务白名单的指示,可以对必须通过主线程执行的目标应用任务实现保护机制,避免必须在主线程执行的目标应用任务调整到子线程上执行带来执行异常。
步骤S2523,根据调整后的主线程以及每个子线程上处理的目标应用任务,调整每个目标应用任务的任务执行线程。
在调整每个目标应用任务的任务执行线程,对应可以得到更新后的任务处理信息。
在实际应用中,不同的用户对于应用任务的执行,可以具有个性化的需求。在一个例子中,本实施例中提供的应用任务的处理方法还可以包括:步骤S2010-S2020。
S2010,获取触发目标应用任务的用户所具有的用户特征。
在本例中,目标应用任务可以是由用户实施点击、滑动、输入等人机交互操作触发,也可以是用户使用对应的应用(APP)在运行过程中为提供对应的应用服务而内部触发。
用户特征是与用户自身的个性化应用需求相关的参数。在本例中,用户特征至少包括应用偏好。应用偏好是用户使用应用的偏好信息,可以包括用户偏好的应用类型、用户偏好触发的应用任务类型等。
在本例中,可以通过用户的注册信息、用户的应用使用历史记录、用户的行为轨迹等用户信息中,提取用户所具有的用户特征。
S2020,以用户特征作为任务处理模型的输入,获取对应的输出结果,作为初始的任务处理信息或者更新后的任务处理信息。
在本例中,任务处理模型包括根据样本集通过神经网络训练得到的机器学习模型。样本集中每个样本包括一个具有对应的所述用户特征的用户,对根据实际的所述任务执行信息执行所述目标应用任务给予的反馈信息。该反馈信息可以是简单的正、负向反馈,也可以包括多个不同的反馈指标。通过执行目标应用任务的应用,采集历史时段中的整个用户群体的应用数据进行提取,可以获取该样本集。
神经网络可以包括LeNet-5、AlexNet、ZFNet、VGG-16、GoogLeNet、ResNet等卷积神经网络,在此不再一一列列举。
通过采集样本集通过神经网络训练得到的任务处理模型,可以利用大量用户数据进行深度学习,针对不同用户个性化用户特征,自适应地输出能适配用户特征的任务处理信息。对应的,根据当前触发目标应用任务的用户的用户特征,可以利用任务处理模型获取能适配用户特征的任务处理信息,基于该任务处理信息来处理目标应用任务,可以精准地满足用户的个性化的应用任务处理需求。
在本例中,可以根据具体的应用时机,选择将根据用户特征作为输入经由任务处理模型处理后输出的任务处理信息,作为首次执行用户触发的目标应用任务所使用的、初始的任务处理信息,或者某次执行目标应用任务后用于下一次执行目标应用任务的、更新后的任务处理信息,以便能更精准地满足用户的个性化需求。
以上已经结合附图、举例说明通过本实施例中提供的应用任务的处理方法,以下将结合图7举一个完整的应用例子进一步说明本实施例中提供的应用任务的处理方法。
<例子一>
在本例中,假设目标应用任务的预设任务类型是启动任务,所有启动任务包括启动任务1、2、3,与启动任务关联的闲时任务包括闲时任务1、2、3,并设置一个主要实施自学习规则、崩溃重置机制、白名单保护机制、黑名单启动机制的自学习模块来更新并获取与启动任务对应的任务处理信息,其中自学习规则可以通过上述步骤S2510-S2520实施,崩溃重置机制可以通过上述步骤S2401实施,黑名单启动机制可以通过上述步骤S2402实施,白名单保护机制可以通过上述步骤S25221实施。
如图7所示,应用任务的处理方法包括:
步骤S201,从任务文件加载所有的启动任务。
在本例中,任务文件中可以记录有所有与对应的应用在提供应用服务可能涉及的所有应用任务,可以通过步骤S201,从任务文件中加载符合预设任务类型的启动任务。
步骤S202,根据所获取的任务处理信息,设置主线程和至少一个子线程并发执行所有启动任务。
在本例中,可以根据运行对应的应用的设备当前空闲的处理器数目来设置多少个子线程与主线程并发处理所有启动任务。
在本例中,与启动任务对应的目标应用功能包括渲染应用启动后向用户展示的应用首页。
步骤S204,在执行所有启动任务之后,通过自学习模块更新并获取更新的任务处理信息。
步骤S205,提供更新的任务处理信息,以供下次执行启动任务时使用。
在另一实施例中,应用任务的处理方法包括还可以包括步骤S203。步骤S203,在执行所有启动任务之后,设置通过至少一个子线程执行与启动任务关联的闲时任务。对应的,在该另一实施例中,步骤S204可以是:在执行所有启动任务和闲时任务之后,通过自学习模块更新并获取更新的任务处理信息。闲时任务例如可以包括视频应用的热点页面的预读加载。
在本例中,通过自学习模块获取更新的任务处理信息,可以根据本次目标应用任务的执行状况,实时、动态调整主线程以及每个子线程上执行的启动任务,对应完成任务处理信息的更新,应用在下一次的启动任务的执行中,实现在线上自适应地调整启动任务在多线程上的执行,提高多个线程并发处理启动任务的效率。
将本例中提供的应用任务的处理方法应用在提供较为复杂功能的应用中,例如,提供较为复杂的视频搜索、播放功能的视频类应用中,可以将视频类应用的平均启动时间从4秒降低到2.4秒,极大缩短应用启动时间,提高应用启动速度,提升用户体验。
在本实施例中,还提供一种视频应用的启动任务的处理方法,包括:步骤310-330。
步骤310,响应于视频应用的启动操作,加载当前待处理的所有启动任务。
视频应用的启动操作,可以是用户对安装视频应用的电子设备的屏幕上显示的视频应用的图标实施例如点击、手势滑动的人机交互操作,也可以是由用户通过其他应用中提供的应用跳转接口实施的应用跳转操作等。
启动任务是视频应用被触发启动时需要执行的任务,通过执行启动任务可以令视频应用完成启动进而能提供视频搜索、播放等视频应用服务。启动任务还可以根据具体的任务内容进一步细分,比如启动任务包括与视频应用启动相关的用户视频上传任务的初始化任务、用户视频下载任务的初始化任务、用户视频播放历史初始化任务、视频免流量业务初始化任务、P2P搜索引擎初始化任务、视频投屏模块初始化任务等等。
在步骤310中,可以根据预先生成的任务文件来记录所有启动任务,在加载时直接根据任务文件来索引加载所有启动任务,提高任务加载效率。
步骤320,根据与启动任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行启动任务。
上述步骤320可以参照上述步骤S2200,以视频应用的启动任务作为目标应用任务来实施,在此不再赘述。
步骤330,在执行所有启动任务之后,提供完成启动的视频应用供用户使用。
在步骤330中,执行所有启动任务之后,视频应用完成启动,可以通过安装视频应用的电子设备的屏幕展示视屏应用的主页面或首页,供用户操作该视屏应用的主页面或首页,获取视频搜索、视频播放、视频评论等服务。
在一个例子中,本实施例中的视频应用的启动任务的处理方法还可以包括:
步骤340,在视频应用启动后,设置至少一个子线程处理与启动任务关联的闲时任务。
闲时任务是与启动任务关联的、任务优先级低于启动任务的任务优先级的应用任务,例如可以是对视频应用的主页面所关联的其他页面,进行预读加载等。
这些与启动任务关联的闲时任务在现有技术中通常是与启动任务放在视频应用的启动阶段进行处理,在本例中,在所有启动任务处理完成、视频应用完成启动展示主页面后,设置一个至少一个子线程处理与启动任务关联的闲时任务,可以避免闲时任务与启动任务在同一任务处理阶段处理带来的启动任务处理耗时的增加,同时避免闲时任务在主线程处理会阻塞主线程,相应缩短视频应用的启动处理耗时。
在另一个例子中,本实施例中提供的视频应用的启动任务的处理方法还可以包括:
步骤3400,更新任务处理信息。
具体地,在一个实施例中,步骤3400可以包括:
步骤3401,监测到根据任务处理信息执行启动任务导致视频应用崩溃时,设置任务处理信息为预设的初始默认信息;
和/或,
步骤3402,监测到根据任务处理信息执行启动任务导致视频应用崩溃时,通过设置任务处理信息,使得导致视频应用崩溃的启动任务被屏蔽不再执行。
步骤3401可以参照上述步骤S2401,以视频应用的启动任务作为目标应用任务实施,在监测到根据任务处理信息执行启动任务导致视频应用崩溃时,设置任务处理信息为预设的初始默认信息,实现任务处理信息初始化,以保证后续根据任务处理信息执行视频应用的启动任务不会出现异常。
步骤3402可以参照上述步骤S2402,以视频应用的启动任务作为目标应用任务实施,监测到根据任务处理信息执行启动任务导致视频应用崩溃时,还可以通过设置任务处理信息,使得导致视频应用崩溃的启动任务被屏蔽不再执行,避免后续继续执行导致视频应用崩溃的启动任务,继续导致视频应用崩溃。
在本实施例中,视频应用的启动任务的处理方法中的步骤3400还可以包括:
步骤3510,在执行所有启动任务之后,分别获取主线程以及每个子线程执行对应的每个启动任务的执行结果参数。
步骤3520,根据主线程以及每个子线程执行对应的每个启动任务的执行结果参数,调整每个启动任务的任务执行线程,得到更新后的任务处理信息,供下次执行启动任务时使用。
步骤3510-3520可以参照上述步骤S2510-S2520,以视频应用的启动任务作为目标应用任务实施,根据主线程以及每个子线程执行对应的每个启动任务的执行结果参数,调整每个启动任务的任务执行线程,可以根据本次启动任务的执行状况,实时、动态调整主线程以及每个子线程上执行的启动任务,对应完成任务处理信息的更新,实现在线上完成任务处理信息的“自学习”,对应提高后续多个线程并发处理启动任务的效率。
<例子二>
在本例中,安装有视频应用的电子设备为手机,用户可以通过手机运行视频应用获取视频服务。假设视频应用的启动任务包括启动任务1、2、3,例如,启动任务1可以是视频免流量业务初始化任务,启动任务可以是P2P搜索引擎初始化任务,启动任务3可以是视频投屏模块初始化任务;与启动任务关联的闲时任务包括闲时任务1、2、3,并设置一个主要实施自学习规则、崩溃重置机制、白名单保护机制、黑名单启动机制的自学习模块来更新并获取与启动任务对应的任务处理信息,其中自学习规则可以通过上述步骤3400(具体可以包括步骤3410-3420以及3510-3520)实施,崩溃重置机制可以通过上述步骤3401实施,黑名单启动机制可以通过上述步骤3402实施,白名单保护机制可以参照上述步骤S25221以目标应用任务是视频应用的启动任务来实施。
如图8所示,应用任务的处理方法包括:
步骤301,用户点击手机中的视频应用图标,触发启动视频应用。
步骤302,从任务文件加载所有的视频应用的启动任务。
视频应用的启动任务可以包括与视频应用启动相关的用户视频上传任务的初始化任务、用户视频下载任务的初始化任务、用户视频播放历史初始化任务、视频免流量业务初始化任务、P2P搜索引擎初始化任务、视频投屏模块初始化任务等等。
在本例中,任务文件中可以记录视频应用在提供应用服务可能涉及的所有应用任务,可以通过步骤302,从任务文件中加载视频应用的启动任务。
步骤303,根据所获取的任务处理信息,设置主线程和至少一个子线程并发执行所有启动任务。
在本例中,可以根据运行视频应用的手机中当前空闲的处理器数目来设置多少个子线程与主线程并发处理所有启动任务。
步骤304,执行所有启动任务后,通过完成启动的视频应用向用户展示应用主页面。
步骤306,执行所有启动任务后,通过自学习模块更新并获取更新的任务处理信息。
步骤307,提供更新的任务处理信息,以供下次执行启动任务时使用。
在另一实施例中,应用任务的处理方法包括还可以包括步骤305。步骤305,在执行所有启动任务之后,设置通过至少一个子线程执行与启动任务关联的闲时任务。对应的,在该另一实施例中,步骤306可以是:在执行所有启动任务和闲时任务之后,通过自学习模块更新并获取更新的任务处理信息。闲时任务例如可以包括视频应用的热点页面的预读加载。
尽管图8中示出在执行闲时任务之后,通过自学习模块更新并获取更新的任务处理信息;本领域技术人员应当理解的是,自学习模块还可以在执行闲时任务之前的适当的时间点更新并获取更新后的任务处理信息,本公开对此不做限制。
在本例中,通过自学习模块更新并获取任务处理信息,可以根据本次视频应用的启动任务的执行状况,实时、动态调整主线程以及每个子线程上执行的启动任务,对应完成任务处理信息的更新,应用在下一次的启动任务的执行中,实现在线上自适应地调整启动任务在多线程上的执行,提高多个线程并发处理启动任务的效率。通过本例中的方法,可以将视频应用的平均启动时间从4秒降低到2.4秒,极大缩短应用启动时间,提高应用启动速度,提升用户体验。
<应用任务的处理装置>
在本实施例中,还提供一种应用任务的处理装置3000,如图9所示,包括:任务加载单元3100、任务执行单元3200以及功能展示单元3300,用于实施本实施例中提供的应用任务的处理方法,在此不再赘述。
应用任务的处理装置3000包括:
任务加载单元3100,用于加载当前待处理的、具有相同的预设任务类型的所有目标应用任务;
任务执行单元3200,用于根据与所述所有目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所述所有目标应用任务;
功能展示单元3300,用于在执行所有所述目标应用任务之后,向用户展示与所述目标应用任务对应的目标应用功能。
可选地,所述任务处理信息中包括每个所述目标应用任务的任务处理指示;所述任务处理指示至少包括每个所述目标应用任务所对应的任务处理阶段以及任务执行线程;每个所述任务处理阶段具有对应的执行次序;所述任务执行线程包括主线程或子线程;
任务执行单元3200还用于:
根据所述任务处理信息,基于每个所述任务处理阶段的执行次序,顺序设置所述主线程以及至少一个子线程,并发执行所述处于同一个所述任务处理阶段的全部所述目标应用任务。
可选地,应用任务的处理装置3000还包括闲时任务处理单元,用于:
在向用户展示所述目标应用功能之后,设置至少一个子线程处理与所述目标应用任务关联的闲时任务;
其中,所述闲时任务的任务优先级低于所述目标应用任务的任务优先级。
可选地,应用任务的处理装置3000还包括任务处理信息更新单元。
在一个实施例中,任务处理信息更新单元可以包括应用崩溃处理单元,用于:
监测到根据所述任务处理信息执行所述目标应用任务导致应用崩溃时,设置所述任务处理信息为预设的初始默认信息;
和/或,
监测到根据所述任务处理信息执行所述目标应用任务导致应用崩溃时,通过设置所述任务处理信息,使得导致应用崩溃的目标应用任务被屏蔽不再执行。
可选地,所述任务处理信息中包括每个所述目标应用任务的任务处理指示;所述任务处理指示至少包括每个所述目标应用任务所对应的任务执行线程;所述任务执行线程包括主线程或子线程;
所述任务处理信息更新单元还用于:
在执行所有所述目标应用任务之后,分别获取所述主线程以及每个所述子线程执行对应的每个所述目标应用任务的任务执行时间;
根据所述主线程以及每个所述子线程执行对应的每个所述目标应用任务的任务执行时间,调整每个所述目标应用任务的任务执行线程,得到更新后的所述任务处理信息,供下次执行对应的所述目标应用任务时使用。
可选地,所述任务处理信息更新单元实施的根据所述主线程以及每个所述子线程执行对应的每个所述目标应用任务的任务执行时间,调整每个所述目标应用任务的任务执行线程,得到更新后的所述任务处理信息,供下次执行对应的所述目标应用任务时使用的步骤包括:
根据所述主线程以及每个所述子线程执行对应的每个所述目标应用任务的任务执行时间,得到所述主线程以及每个所述子线程的任务执行总时长;
根据所述主线程以及每个所述子线程的任务执行总时长,遍历所述主线程以及每个所述子线程,调整所述主线程以及每个所述子线程上处理的所述目标应用任务,使得所述主线程以及每个所述子线程上的任务执行预测总时长中任意两者的差值在预设的差值阈值内;
其中,所述主线程以及每个所述子线程上的任务执行预测总时长,是根据调整后的所述主线程以及每个所述子线程上处理的所述目标应用任务,以及已获取的每个所述目标应用任务的任务执行时间得到的;
根据调整后的所述主线程以及每个所述子线程上处理的所述目标应用任务,调整每个所述目标应用任务的任务执行线程。
可选地,所述任务处理信息更新单元还用于:
调整所述主线程以及每个所述子线程上处理的所述目标应用任务,使得调整的每个所述目标应用任务的任务执行线程,符合预设的应用任务白名单;
其中,所述应用任务白名单用于指示必须通过所述主线程执行的所述目标应用任务。
本领域技术人员应当明白,可以通过各种方式来实现。例如,可以通过指令配置处理器来实现应用任务的处理装置3000。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现应用任务的处理装置3000。例如,可以将应用任务的处理装置3000固化到专用器件(例如ASIC)中。可以将应用任务的处理装置3000分成相互独立的单元,或者可以将它们合并在一起实现。应用任务的处理装置3000可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
在本实施例中,应用任务的处理装置3000可以设置在任意需要处理应用任务的软件产品或者软件程序上,例如,可以设置在提供视频类应用服务的应用的客户端中。
<应用任务的处理设备>
在本实施例中,还提供一种应用任务的处理设备4000,该处理设备4000可以包括智能终端,例如,手机、平板电脑、计算机等,如图10所示,包括:
存储器4100,用于存储可执行的指令;
处理器4200,用于根据所述可执行的指令的控制,运行所述应用任务的处理设备4000执行如本实施例提供的应用任务的处理方法或者视频应用的启动任务的处理方法。
在本实施例中,应用任务的处理设备4000可以是如图1所示的电子设备1000。具体的一个例子中,应用任务的处理设备4000可以是安装任意需要处理应用任务的应用程序或软件产品的手机。
应用任务的处理设备4000还可以包括其他的装置,例如还可以包括输入装置、通信装置等。
<可读存储介质>
在本实施例中,还提供一种可读存储介质,可读存储介质存储有可被计算机读取并运行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行如本实施例所述的应用任务的处理方法或者视频应用的启动任务的处理方法。
可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
以上已经结合附图描述了本发明的实施例,根据本实施例,提供一种应用任务的处理方法、装置、设备及可读存储介质,通过加载待处理的具有相同的预设任务类型的所有目标应用任务,根据与目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所有目标应用任务,在执行所有目标应用任务之后,向用户展示与目标应用任务对应的目标应用功能,极大降低应用任务的处理时长,提高应用的响应速度,相应提升用户的应用服务获取体验。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (13)

1.一种应用任务的处理方法,其中,包括:
加载当前待处理的、具有相同的预设任务类型的所有目标应用任务;
根据与所述目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所述所有目标应用任务;
在执行所有所述目标应用任务之后,向用户展示与所述目标应用任务对应的目标应用功能。
2.根据权利要求1所述的方法,还包括:
更新所述任务处理信息。
3.根据权利要求1所述的方法,其中,
所述任务处理信息中包括每个所述目标应用任务的任务处理指示;所述任务处理指示至少包括每个所述目标应用任务所对应的任务处理阶段以及任务执行线程;每个所述任务处理阶段具有对应的执行次序;所述任务执行线程包括主线程或子线程;
所述根据与所述目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所述所有目标应用任务的步骤包括:
根据所述任务处理信息,基于每个所述任务处理阶段的执行次序,顺序设置所述主线程以及至少一个子线程,并发执行所述处于同一个所述任务处理阶段的全部所述目标应用任务。
4.根据权利要求1所述的方法,其中,所述方法还包括:
在向用户展示所述目标应用功能之后,设置至少一个子线程处理与所述目标应用任务关联的闲时任务;
其中,所述闲时任务的任务优先级低于所述目标应用任务的任务优先级。
5.根据权利要求2所述的方法,其中,所述更新所述任务处理信息包括:
监测到根据所述任务处理信息执行所述目标应用任务导致应用崩溃时,设置所述任务处理信息为预设的初始默认信息;
和/或,
监测到根据所述任务处理信息执行所述目标应用任务导致应用崩溃时,通过设置所述任务处理信息,使得导致应用崩溃的目标应用任务被屏蔽不再执行。
6.根据权利要求2所述的方法,其中,
所述任务处理信息中包括每个所述目标应用任务的任务处理指示;所述任务处理指示至少包括每个所述目标应用任务所对应的任务执行线程;所述任务执行线程包括主线程或子线程;
所述更新所述任务处理信息包括:
在执行所有所述目标应用任务之后,分别获取所述主线程以及每个所述子线程执行对应的每个所述目标应用任务的执行结果参数;
根据所述主线程以及每个所述子线程执行对应的每个所述目标应用任务的执行结果参数,调整每个所述目标应用任务的任务执行线程,得到更新后的所述任务处理信息,供下次执行对应的所述目标应用任务时使用。
7.根据权利要求6所述的方法,其中,
所述执行结果参数至少包括任务执行时间;所述根据所述主线程以及每个所述子线程执行对应的每个所述目标应用任务的执行结果参数,调整每个所述目标应用任务的任务执行线程的步骤包括:
根据所述主线程以及每个所述子线程执行对应的每个所述目标应用任务的任务执行时间,得到所述主线程以及每个所述子线程的任务执行总时长;
根据所述主线程以及每个所述子线程的任务执行总时长,遍历所述主线程以及每个所述子线程,调整所述主线程以及每个所述子线程上处理的所述目标应用任务,使得所述主线程以及每个所述子线程上的任务执行预测总时长中任意两者的差值在预设的差值阈值内;
其中,所述主线程以及每个所述子线程上的任务执行预测总时长,是根据调整后的所述主线程以及每个所述子线程上处理的所述目标应用任务,以及已获取的每个所述目标应用任务的任务执行时间得到的;
根据调整后的所述主线程以及每个所述子线程上处理的所述目标应用任务,调整每个所述目标应用任务的任务执行线程。
8.根据权利要求7所述的方法,其中,所述方法还包括:
调整所述主线程以及每个所述子线程上处理的所述目标应用任务,使得调整的每个所述目标应用任务的任务执行线程,符合预设的应用任务白名单;
其中,所述应用任务白名单用于指示必须通过所述主线程执行的所述目标应用任务。
9.根据权利要求1所述的方法,其中,所述方法还包括:
获取触发所述目标应用任务的用户所具有的用户特征;
以所述用户特征作为任务处理模型的输入,获取对应的输出结果,作为初始的所述任务处理信息或者更新后的所述任务处理信息;所述任务处理模型包括根据样本集通过神经网络训练得到的机器学习模型;所述样本集中每个样本包括一个具有对应的所述用户特征的用户,对根据实际的所述任务执行信息执行所述目标应用任务给予的反馈信息。
10.一种视频应用的启动任务的处理方法,其中,包括:
响应于视频应用的启动操作,加载当前待处理的所有启动任务;
根据与所述启动任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所述启动任务;
在执行所有所述启动任务之后,提供完成启动的所述视频应用供用户使用。
11.一种应用任务的处理装置,其中,包括:
任务加载单元,用于加载当前待处理的、具有相同的预设任务类型的所有目标应用任务;
任务执行单元,用于根据与所述所有目标应用任务对应的任务处理信息,设置主线程以及至少一个子线程并发执行所述所有目标应用任务;
功能展示单元,用于在执行所有所述目标应用任务之后,向用户展示与所述目标应用任务对应的目标应用功能。
12.一种应用任务的处理设备,其中,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述应用任务的处理设备执行如权利要求1-9所述的应用任务的处理方法或者如权利要求10所述的视频应用的启动任务的执行方法。
13.一种可读存储介质,其中,所述可读存储介质中存储有可被计算机读取执行的计算机程序,所述计算机程序用于在被计算机读取运行时,执行如权利要求1-9所述的应用任务的处理方法或者如权利要求10所述的视频应用的启动任务的执行方法。
CN201910838691.5A 2019-09-05 2019-09-05 应用任务的处理方法、装置、设备及可读存储介质 Pending CN112445588A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910838691.5A CN112445588A (zh) 2019-09-05 2019-09-05 应用任务的处理方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910838691.5A CN112445588A (zh) 2019-09-05 2019-09-05 应用任务的处理方法、装置、设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN112445588A true CN112445588A (zh) 2021-03-05

Family

ID=74733440

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910838691.5A Pending CN112445588A (zh) 2019-09-05 2019-09-05 应用任务的处理方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112445588A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032040A (zh) * 2021-03-15 2021-06-25 北京百度网讯科技有限公司 用于处理任务的方法、装置、设备、介质和产品
CN115878648A (zh) * 2023-02-22 2023-03-31 成都成电医星数字健康软件有限公司 数据逻辑时序自动调整方法、装置、电子设备及存储介质
CN117076158A (zh) * 2023-09-28 2023-11-17 荣耀终端有限公司 一种广播分发处理方法及相关设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032040A (zh) * 2021-03-15 2021-06-25 北京百度网讯科技有限公司 用于处理任务的方法、装置、设备、介质和产品
CN113032040B (zh) * 2021-03-15 2023-07-28 北京百度网讯科技有限公司 用于处理任务的方法、装置、设备、介质和产品
CN115878648A (zh) * 2023-02-22 2023-03-31 成都成电医星数字健康软件有限公司 数据逻辑时序自动调整方法、装置、电子设备及存储介质
CN115878648B (zh) * 2023-02-22 2023-05-05 成都成电医星数字健康软件有限公司 数据逻辑时序自动调整方法、装置、电子设备及存储介质
CN117076158A (zh) * 2023-09-28 2023-11-17 荣耀终端有限公司 一种广播分发处理方法及相关设备
CN117076158B (zh) * 2023-09-28 2024-03-12 荣耀终端有限公司 一种广播分发处理方法及相关设备

Similar Documents

Publication Publication Date Title
CN108156205B (zh) 消息推送方法、客户端、服务端及可编程设备
CN107911798B (zh) 消息推送方法、装置及终端
CN108874289B (zh) 应用历史记录查看方法、装置及电子设备
CN112445588A (zh) 应用任务的处理方法、装置、设备及可读存储介质
JP2021514499A (ja) ターゲットオブジェクト処理方法、装置、電子機器及び記憶媒体
CN107329659B (zh) 一种权限设置方法、装置、电子设备及存储介质
CN107203425B (zh) 轻应用的切换方法、设备及电子设备
CN103412793A (zh) 一种优化系统资源的方法、装置及系统
CN112214142A (zh) 应用程序信息显示方法、装置、电子设备及存储介质
CN104360925A (zh) 统计应用程序使用频率的方法及装置
CN106648746B (zh) 一种应用程序的执行方法和装置
CN108572866B (zh) 一种应用程序管理方法、应用程序管理装置及移动终端
CN113934913A (zh) 数据抓取方法、装置、存储介质及电子设备
CN113051493A (zh) 应用程序展示方法、装置、存储介质以及终端
CN111597009B (zh) 应用程序显示的方法、装置及终端设备
CN111459581A (zh) 页面切换方法、装置、电子设备及计算机可读介质
CN113919490A (zh) 推理引擎的适配方法、装置及电子设备
US20210026913A1 (en) Web browser control feature
CN107612981B (zh) 应用程序推送方法、装置、终端及计算机可读存储介质
CN113010059B (zh) 应用程序图标管理方法、装置及电子设备
CN112912832A (zh) 应用推送方法、装置、移动终端及存储介质
US9952914B2 (en) Integrated parameter control with persistence indication
CN105653143B (zh) 应用程序操作界面的处理方法及实现该方法的移动终端
CN104407763A (zh) 内容输入方法及系统
CN111158678B (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