线程优化方法、线程优化装置、终端及计算机可读存储介质与流程

未命名 08-27 阅读:88 评论:0


1.本技术涉及系统优化技术领域,更具体而言,涉及一种线程优化方法、线程优化装置、终端及非易失性计算机可读存储介质。


背景技术:

2.目前,在智能终端对操作系统优化过程中,主要采取针对可运行线程的优化,如经典做法是提频或者线程迁大核方式。这些方式影响的是线程运行时性能,但没有考虑线程在睡眠后再启动时带来的影响,导致用户使用体验较差。


技术实现要素:

3.本技术实施方式提供一种线程优化方法、线程优化装置、终端及非易失性计算机可读存储介质。
4.本技术实施方式的线程优化方法包括获取当前应用睡眠时的关键线程及所述关键线程对应的依赖线程集合;根据所述依赖线程集合及历史依赖信息,获取最佳线程;对所述最佳线程提速,以运行所述当前应用。
5.本技术实施方式的线程优化装置包括第一获取模块、第二获取模块和提速模块。所述第一获取模块用于获取当前应用的关键线程及所述关键线程对应的依赖线程集合。所述第二获取模块用于根据所述依赖线程集合及历史依赖信息,获取最佳线程。所述提速模块用于对所述最佳线程提速,以运行所述当前应用。
6.本技术实施方式的终端包括处理器。所述处理器用于获取当前应用的关键线程及所述关键线程对应的依赖线程集合;根据所述依赖线程集合及历史依赖信息,获取最佳线程;对所述最佳线程提速,以运行所述当前应用。
7.本技术实施方式的非易失性计算机可读存储介质包含计算机程序,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行如下线程优化方法:获取当前应用睡眠时的关键线程及所述关键线程对应的依赖线程集合;根据所述依赖线程集合及历史依赖信息,获取最佳线程;对所述最佳线程提速,以运行所述当前应用。
8.本技术实施方式的线程优化方法、线程优化装置、终端及非易失性计算机可读存储介质通过获取当前应用睡眠时关键线程对应的依赖线程集合,并通过历史依赖信息,以得到最佳线程。而最佳线程为依赖线程集合中运行速度较短或占用资源较少的依赖线程,从而在运行当前应用时,对最佳线程提速,以使最佳线程快速启动,如此,在运行当前应用时,当前应用的关键线程因为最佳线程快速启动,从而缩短了启动关键线程的等待时间,以提高了终端运行应用的流畅性,保证了用户的使用体验。
9.本技术的实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实施方式的实践了解到。
附图说明
10.本技术的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
11.图1是本技术某些实施方式的线程优化方法的流程示意图;
12.图2是本技术某些实施方式的线程优化装置的示意图;
13.图3是本技术某些实施方式的终端的平面示意图;
14.图4是本技术某些实施方式的终端的场景示意图;
15.图5至图10是本技术某些实施方式的线程优化方法的流程示意图;
16.图11是本技术某些实施方式的终端的场景示意图;
17.图12至图13是本技术某些实施方式的线程优化方法的流程示意图;
18.图14是本技术某些实施方式的非易失性计算机可读存储介质和处理器的连接状态示意图。
具体实施方式
19.下面详细描述本技术的实施方式,实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本技术的实施方式,而不能理解为对本技术的实施方式的限制。
20.请参阅图1,本技术实施方式提供一种线程优化方法。该线程优化方法包括步骤:
21.01:获取当前应用睡眠时的关键线程及关键线程对应的依赖线程集合;
22.03:根据依赖线程集合及历史依赖信息,获取最佳线程;及
23.05:对最佳线程提速,以运行当前应用。
24.请参阅图2,本技术实施方式提供一种线程优化装置10。线程优化装置10包括第一运行模块11、第二运行模块12和提速模块13。本技术实施方式的线程优化方法可应用于线程优化装置10。其中,第一运行模块11、第二运行模块12和提速模块13分别用于执行步骤01、步骤03和步骤05。即,第一运行模块11用于获取当前应用睡眠时的关键线程及所述关键线程对应的依赖线程集合;第二运行模块12用于根据所述依赖线程集合及历史依赖信息,获取所述最佳线程;提速模块13用于对所述最佳线程提速,以运行所述当前应用。
25.请参阅图3,本技术实施方式还提供一种终端100。本技术实施方式的线程优化方法可应用于终端100。终端100包括处理器20。处理器20用于执行步骤01、步骤03和步骤05。即,处理器20用于获取当前应用睡眠时的关键线程及关键线程对应的依赖线程集合;根据依赖线程集合及历史依赖信息,获取最佳线程;及对最佳线程提速,以运行当前应用。
26.其中,终端100可以是手机、平板电脑、数码相机、笔记本电脑、智能手表、头显设备、游戏机等。如图2所示,本技术实施方式以终端100是手机为例进行说明,可以理解,终端100的具体形式并不限于手机。
27.终端100还包括壳体30,壳体30可用于安装终端100的显示装置、成像装置、供电装置、通信装置等功能模块,以使壳体30为功能模块提供防尘、防摔、防水等保护。
28.请结合图4,在某些实施方式中,处理器20可包括数据处理单元和预测算法单元。其中,数据处理单元可用于建立当前应用在运行时的依赖关系图,预测算法单元可预测出
关键线程对应的依赖线程集合中的最佳线程。
29.具体地,当终端100在运行的当前应用睡眠时,处理器20会获取当前的关键线程以及关键线程对应的依赖线程集合。其中,依赖线程集合为关键线程所依赖的线程集合。可以理解,当依赖线程中的至少一个线程被运行时,关键线程才可被运行。
30.接下来,处理器20可根据依赖线程集合和历史依赖信息,以筛选出依赖线程集合中的最佳线程。其中,历史依赖信息为当前应用在运行过程中,处理器20根据关键线程和依赖线程的依赖关系建立的依赖关系图。可以理解,处理器20通过历史依赖信息便可得到关键线程对应的依赖线程集合中每个依赖线程在运行过程中,占用资源的使用情况、运行时长等。
31.在一个实施方式中,预测算法单元可通过人工智能(artificial intelligence,ai)算法,并根据数据处理单元建立的依赖关系图,从而预测出当前应用的关键线程所需要的最佳线程,并在当前应用启动前,提前加速启动最佳线程,从而缩短了启动关键线程的等待时间,以提高了终端100系统的流畅性,保证了用户的使用体验。
32.以图4解释说明,在终端100的软件的任务库运行当前应用时,便会对当前应用的关键线程进行标签,并将标签存入寄存器0中,在当前应用睡眠并处于睡眠队列时,便会将关键线程的依赖线程的标签存入寄存器1,数据处理单元可根据寄存器1中的依赖线程的标签建立关键线程的依赖关系网。接下来,预测算法单元通过依赖关系网预测最佳线程,并将最佳线程的标签存入寄存器2。在通过软件挑选以将寄存器2中的最佳线程的选出,并通过任务库在再次运行最佳线程时,软件便会将最佳线程的标签再次填入至寄存器4,以使硬件感知软件正在运行的线程是最佳线程,从而使处理器20提高最佳线程的启动速度,以运行当前应用。
33.在另一个实施方式中,处理器20还可通过依赖线程集合和历史依赖信息,以筛选出依赖线程集合中运行时间最短的一个依赖线程,以作为最佳线程。例如,依赖线程集合中包含依赖线程a、依赖线程b和依赖线程c,且依赖线程a、依赖线程b和依赖线程c的运行时间分别为3毫秒、5毫秒和10毫秒,处理器20便可将依赖线程a作为最佳线程。
34.最后,处理器20便可对最佳线程进行提速工作,从而运行当前应用。
35.更具体地,当前应用睡眠时,即当前应用处于后台睡眠状态,而当将当前应用重新切换至前台时,处理器20可先通过得到的最佳线程,并对最佳线程进行提速,例如,提高在运行最佳线程时,cpu的运行频率、将最佳线程转移至运行任务较少的cpu上等,从而使最佳线程快速启动,如此,运行当前应用时,当前应用的关键线程因为最佳线程快速启动,从而缩短了启动关键线程的等待时间,以提高了终端100运行应用的流畅性,保证了用户的使用体验。
36.需要说明地是,在终端100运行最佳线程时,数据处理单元还可将最佳线程与关键线程的依赖关系更新至依赖关系图,如此,在终端100运行当前应用较长时间后,数据处理单元便可建立出更为全面的依赖关系图,从而保证在处理器20对当前应用进行下次的最佳线程预测时,预测出的最佳线程更为准确,从而进一步保证对关键线程的性能提升。
37.本技术实施方式的线程优化方法、线程优化装置10和终端100通过获取当前应用睡眠时关键线程对应的依赖线程集合,并通过历史依赖信息,以得到最佳线程。而最佳线程为依赖线程集合中运行速度较短或占用资源较少的依赖线程,从而在运行当前应用时,对
最佳线程提速,以使最佳线程快速启动,如此,在运行当前应用时,当前应用的关键线程因为最佳线程快速启动,从而缩短了启动关键线程的等待时间,以提高了终端100运行应用的流畅性,保证了用户的使用体验。
38.请参阅图2、图3和图5,在某些实施方式中,步骤03:根据依赖线程集合及历史依赖信息,获取最佳线程,包括步骤:
39.031:根据当前应用的历史依赖信息,确定多个第一线程集合;
40.032:确定多个第一线程集合中,启动时间最短的第一线程集合为最佳线程。
41.在某些实施方式中,第二获取模块用于执行步骤031和步骤032。即,第二获取模块用于根据当前应用的历史依赖信息,确定多个第一线程集合;确定多个第一线程集合中,启动时间最短的第一线程集合为最佳线程。
42.在某些实施方式中,处理器20用于执行步骤031和步骤032。即,处理器20用于根据当前应用的历史依赖信息,确定多个第一线程集合;确定多个第一线程集合中,启动时间最短的第一线程集合为最佳线程。
43.具体地,在处理器20根据依赖线程和历史依赖信息,获取最佳线程前。处理器20可先根据当前应用的历史依赖信息,以得到关键线程在当前应用的历史运行过程中,所依赖过的线程,从而得到多个第一线程集合。可以理解,多个第一线程集合中的每个线程集合均被关键线程依赖。
44.如此,处理器20便可根据多个线程集合中,启动时间最短,即运行时间最短的第一线程集合作为最佳线程。那么,在处理器20再次运行当前应用时,一方面因为最佳线程运行时间较短,另一方面,处理器20还会针对最佳线程进行提速处理,从而使最佳线程的运行速度更快,以提高关键线程的启动速度,从而提高了终端100运行应用的流畅性,保证了用户的使用体验。
45.请参阅图2、图3和图6,在某些实施方式中,步骤03:根据依赖线程集合及历史依赖信息,获取最佳线程,包括步骤:
46.033:获取当前应用睡眠时,确定正在运行的与关键线程对应的第二线程集合为最佳线程。
47.在某些实施方式中,第二获取模块用于执行步骤033。即,第二获取模块用于获取当前应用睡眠时,确定正在运行的与关键线程对应的第二线程集合为最佳线程。
48.在某些实施方式中,处理器20用于执行步骤033。即,处理器20用于获取当前应用睡眠时,确定正在运行的与关键线程对应的多个第二线程集合中启动时间最短的第二线程集合为最佳线程。
49.具体地,在获取最佳线程时,处理器20还可是通过获取当前应用睡眠时,正在运行的与关键线程对应的第二线程集合。可以理解,当前应用睡眠时,第二线程集合是被关键线程依赖的,那么在终端100再次运行当前应用时,第二线程集合被再次使用的几率较大。
50.因此,在处理器20获取得到第二线程集合后,可直接将第二线程作为最佳线程。那么,在处理器20再次运行当前应用时,最佳线程被关键线程依赖的几率较大,在处理器20针对最佳线程进行提速处理,以使最佳线程的运行速度更快后,便可提高关键线程的启动速度,从而提高了终端100运行应用的流畅性,保证了用户的使用体验。
51.请参阅图2、图3和图7,在某些实施方式中,步骤03:根据依赖线程集合及历史依赖
信息,获取最佳线程,包括步骤:
52.034:确定多个第一线程集合中,占用终端100系统资源最少的第一线程集合为最佳线程。
53.在某些实施方式中,第二获取模块用于执行步骤034。即,第二获取模块用于确定多个第一线程集合中,占用终端100系统资源最少的第一线程集合为最佳线程。
54.在某些实施方式中,处理器20用于执行步骤034。即,处理器20用于确定多个第一线程集合中,占用终端100系统资源最少的第一线程集合为最佳线程。
55.具体地,在处理器20获取的得到多个第一线程集合后,处理器20还可通过对比多个第一线程集合中,占用终端100的系统资源最少的第一线程集合作为最佳线程。
56.如此,在处理器20对最佳集合进行提速时,由于最佳线程占用终端100的系统资源较少,因此,在对最佳线程进行提速时,终端100的系统资源不会超过负载,从而保证即使对最佳线程进行了提速,以不会导致终端100的在运行当前应用时出现卡顿,以保证用户的使用体验。
57.请参阅图2、图3和图8,在某些实施方式中,步骤03:根据依赖线程集合及历史依赖信息,获取最佳线程,包括步骤:
58.035:根据多个第一线程集合的启动时间和占用终端系统资源,确定最佳线程。
59.在某些实施方式中,第二获取模块用于执行步骤035。即,第二获取模块用于根据多个第一线程集合的启动时间和占用终端100系统资源,确定最佳线程。
60.在某些实施方式中,处理器20用于执行步骤035。即,处理器20用于根据多个第一线程集合的启动时间和占用终端100系统资源,确定最佳线程。
61.具体地,在处理器20获取的得到多个第一线程集合后,处理器20还可通过对比多个第一线程集合中,所有第一线程集合的启动时间和占用终端100的系统资源,以确定最佳线程。
62.例如,当处理器20获取得到多个第一线程集合后,对于每个第一线程集合,处理器20都可获取得到对应的启动时间和占用终端100系统资源,此时,处理器便可选取在多个第一线程集合中,启动时间最短且占用终端100系统资源最少的一个第一线程集合作为最佳线程,从而保证在处理器20对最佳线程提速时,一方面,最佳线程自身的启动时间较短,从而保证加速后的最佳线程的启动时间更短,以保证关键线程能够被快速启动,另一方面,最佳线程所占用终端100的系统资源较少,从而保证在加速并运行最佳过程中,不会消耗较多的系统资源,从而保证终端100运行当前应用的流畅性,以保证用户的使用体验,
63.在某些实施方式中,处理器20还可在选取最佳线程时,对多个第一线程集合进行打分,如总分j为100分,多个第一线程集合的启动时间k越短,启动时间k对应的分数越高,多个第一线程集合的占用终端100系统资源l越少,占用终端100系统的资源l对应的分数越高,并在计算每个第一线程集合的总分j时,设定对应k和l的权重比例。例如,k的权重为0.8,l的权重为0.2,那么每个第一线程集合的总分j=0.8k+0.2l,在处理器20确定多个第一线程集合中的最佳线程时,便可对比多个第一线程集合的总分j,从而选取总分j最高的第一线程集合作为最佳线程。
64.如此,在处理器20对最佳集合进行提速时,由于最佳线程同时衡量了该线程的启动时间和占用终端100的系统资源,因此,在对最佳线程进行提速时,可保证终端100的系统
资源不会超过负载,以保证即使对最佳线程进行了提速,以不会导致终端100的在运行当前应用时出现卡顿,以保证用户的使用体验。
65.请参阅图2、图3和图9,在某些实施方式中,步骤03:根据依赖线程集合及历史依赖信息,获取最佳线程,包括步骤:
66.036:获取启动时间最短的第一线程集合对应的第一依赖子线程中,正在运行的第一依赖子线程的第一数量;
67.037:获取第二线程集合对应的第二依赖子线程中,正在运行的第二依赖子线程的第二数量;及
68.038:比较第一数量和第二数量,以确定最佳线程。
69.在某些实施方式中,第二获取模块用于执行步骤036、步骤037和步骤038。即,第二获取模块用于获取启动时间最短的第一线程集合对应的第一依赖子线程中,正在运行的第一依赖子线程的第一数量;获取第二线程集合对应的第二依赖子线程中,正在运行的第二依赖子线程的第二数量;及比较第一数量和第二数量,以确定最佳线程。
70.在某些实施方式中,处理器20用于执行步骤036、步骤037和步骤038。即,处理器20用于获取启动时间最短的第一线程集合对应的第一依赖子线程中,正在运行的第一依赖子线程的第一数量;获取第二线程集合对应的第二依赖子线程中,正在运行的第二依赖子线程的第二数量;及比较第一数量和第二数量,以确定最佳线程。
71.具体地,处理器20还可同时获取多个第一线程集合和多个第二线程集合,而在运行最佳线程前,还需启动最佳线程所依赖的子线程,只有子线程被启动,最佳线程才可被运行。
72.因此,处理器20可先根据多个第一线程集合中启动时间最短的第一线程集合和第二线程集合,以获取启动时间最短的第一线程集合对应的第一依赖子线程,及第二线程集合对应的第二依赖子线程。
73.接下来,处理器20便会根据第一依赖子线程和第二依赖子线程,以获取终端100正在运行的第一依赖子线程的第一数量和终端100正在运行的第二依赖子线程的第二数量,然后通过对比第一数量和第二数量,从而确定最佳线程。
74.例如,第一依赖子线程的数量10个,正在运行的第一依赖子线程的第一数量为8个,第二依赖子线程的数量为10个,正在运行的第二依赖子线程的第二数量为7个。则说明处理器20在运行第一线程集合对应的最佳线程前,需先启动2个第一依赖子线程,而处理器20在运行第二线程集合对应的最佳线程前,需先启动3个第二依赖子线程。那么,处理器20可根据第一数量和第二数量,从而确定最佳线程为第一依赖线程,以保证在运行最佳线程前,启动的子线程较少,从而缩短运行最佳线程前的准备时间,以提高关键线程的启动速度,从而提高了终端100运行应用的流畅性,保证了用户的使用体验。
75.请参阅图2、图3和图10,在某些实施方式中,步骤05:对最佳线程提速,以运行当前应用,还包括步骤:
76.051:获取终端100当前的状态信息;及
77.052:根据状态信息,提升最佳线程的启动速度,以运行当前应用。
78.在某些实施方式中,提速模块13还用于执行步骤051和步骤052。即,提速模块13用于获取终端100当前的状态信息;及根据状态信息,提升最佳线程的启动速度,以运行当前
应用。
79.某些实施方式中,处理器20用于执行步骤051和步骤052。即,处理器20用于获取终端100当前的状态信息;及根据状态信息,提升最佳线程的启动速度,以运行当前应用。
80.具体地,在处理器20对最佳线程进行提速时,可获取终端100当前的状态信息,并根据状态信息,来对最佳线程的启动速度进行提升,从而运行当前应用。其中,终端100当前的状态信息指,终端100在运行最佳线程前的资源使用情况。如当前终端100空闲内存、当前终端100可运行任务数、当前终端100运行任务,当前终端100的cpu频率、当前终端100的负载信息等。
81.更具体地,如图11所示,终端100还可包括系统工作负载计算(system workload compute,swc)单元、性能监控单元(performance monitor unit,pmu)、系统资源控制器(system resource controller,src)、系统可控制资源列表(system resource list,srl)及hw调频调压(dynamic voltage and frequency scal ing,hw dvfs)单元。
82.在处理器20对最佳线程进行提速时,终端100的操作系统还可将终端100当前的状态信息反馈给swc单元,swc可根据状态信息计算当前系统负载,并传输至处理器20、hw dvfs单元以及src,从而对终端100的系统进行资源控制。而srl中还可出了当系统负载发生变化时,系统可精确控制的资源。如此,处理器20便可获知在运行最佳线程时,所需占用的资源。
83.由此,在处理器20对最佳线程提速时,处理器20可快速的衡量终端100当前的状态信息,以保证在最佳线程能够进行提速并运行的同时,还可保证系统的功耗较低。即,在保证终端100功耗较低的同时,还能可保证最佳线程的启动速度较快,从而缩短运行最佳线程前的准备时间,以提高关键线程的启动速度,从而提高了终端100运行应用的流畅性,保证了用户的使用体验。
84.例如,处理器20在获取得到终端100当前各个cpu的负载、运行频率和利用率后。处理器20便可通过合理的控制cpu的利用率和cpu的运行频率,从而高效的使用cpu,以达到减小终端100功耗的目的的同时,还可保证最佳线程的启动速度较快。
85.请参阅图2、图3和图12,本技术实施方式的线程优化方法,在获取所述最佳线程后,还包括步骤:
86.04:中断当前正在运行的线程,并运行最佳线程。
87.在某些实施方式中,线程优化装置10还包括线程优化装置14,线程优化装置14还用于执行步骤04。即,线程优化装置14用于中断当前正在运行的线程,并运行最佳线程。
88.某些实施方式中,处理器20用于执行步骤04。即,处理器20用于中断当前正在运行的线程,并运行最佳线程。
89.具体地,在处理器20获取得到最佳线程后,处理器20还可通过判断当前正在运行的线程是否与最佳线程是否一致,并在当前正在运行的线程与最佳线程不一致时,直接中断当前正在运行的线程,以直接运行最佳线程,从而减少运行最佳线程的总时间。
90.如图4所示,当处理器20通尝试唤醒的可运行队列中的线程时,还可将可运行队列中的线程的标签存储至寄存器3中,预测算法单元便可获取寄存器3中的标签,以确认尝试唤醒的线程是否为最佳线程,并在尝试唤醒的线程不是最佳线程时,发送中断触发请求以中断当前正在运行的线程,并将当前正在运行的线程标签存储至寄存器5,然后为挑选任务
单元提供寄存器2中存储的最佳线程,以使任务库单元运行最佳线程,从而减少运行最佳线程的总时间。
91.请参阅图2、图3和图13,本技术实施方式的线程优化方法,还包括步骤:
92.07:在监控依赖线程集合的睡眠时间大于预定时长时,启动依赖线程集合。
93.在某些实施方式中,线程优化装置10还包括监控模块15,监控模块15还用于执行步骤07。即,线程优化装置14用于在监控依赖线程集合的睡眠时间大于预定时长时,启动依赖线程集合。
94.某些实施方式中,处理器20用于执行步骤07。即,处理器20用于在监控依赖线程集合的睡眠时间大于预定时长时,启动依赖线程集合。
95.具体地,如图4所示,终端100还可包括监控器,处理器20可通过监控器,以监控获取得到的依赖线程集合是否长时间未运行,即长时间处于睡眠状态,并在依赖线程集合的睡眠时间大于预定时长时,运行依赖线程集合。其中,预定时长可通过经验值直接设定,启动依赖线程集合为给予依赖线程集合中的每个依赖线程一定的cpu资源,以保证依赖线程能够快速启动。
96.例如,依赖线程集合中存储有依赖线程a、依赖线程b和依赖线程c,依赖线程a的睡眠时间为8秒,依赖线程b的睡眠时间为15秒,依赖线程c的睡眠时间为10秒。若预定时长为15秒,则处理器20会在下一时刻直接运行依赖线程b,并在依赖线程a和依赖线程c的睡眠时间超过15秒时,运行依赖线程a和依赖线程c,从而保证处理器20在运行最佳线程后,若还需其他依赖线程运行时,处理器20能较快的启用其他的依赖线程。
97.在某些实施方式中,处理器20还可根据终端100当前的状态信息,以在终端100的cpu运行频率、系统负载等能够保证再运行其他线程时,直接运行其他线程,以保证在使用其他线程时,能够快速的启动其他线程,从而保证终端100运行应用的整体的流畅性,以更好的保证用户的使用体验。
98.请参阅图14,本技术实施方式还提供一种包含计算机程序301的非易失性计算机可读存储介质300。当计算机程序301被一个或多个处理器20执行时,使得一个或多个处理器20执行上述任一实施方式的线程优化方法。
99.例如,计算机程序301被一个或多个处理器20执行时,使得处理器20执行以下线程优化方法:
100.01:获取当前应用睡眠时的关键线程及关键线程对应的依赖线程集合;
101.03:根据依赖线程集合及历史依赖信息,获取最佳线程;及
102.05:对最佳线程提速,以运行当前应用。
103.再例如,计算机程序301被一个或多个处理器20执行时,使得处理器20执行以下线程优化方法:
104.031:根据当前应用的历史依赖信息,确定多个第一线程集合;
105.032:确定多个第一线程集合中,启动时间最短的第一线程集合为最佳线程。
106.在本说明书的描述中,参考术语“某些实施方式”、“一个例子中”、“示例地”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方
式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
107.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
108.尽管上面已经示出和描述了本技术的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施方式进行变化、修改、替换和变型。

技术特征:
1.一种线程优化方法,其特征在于,包括:获取当前应用睡眠时的关键线程及所述关键线程对应的依赖线程集合;根据所述依赖线程集合及历史依赖信息,获取最佳线程;对所述最佳线程提速,以运行所述当前应用。2.根据权利要求1所述的线程优化方法,其特征在于,所述根据所述依赖线程集合及历史依赖信息,获取所述最佳线程,包括:根据所述当前应用的历史依赖信息,确定多个第一线程集合;确定多个所述第一线程集合中,启动时间最短的所述第一线程集合为最佳线程;或获取所述当前应用睡眠时,确定正在运行的与所述关键线程对应的第二线程集合为最佳线程。3.根据权利要求2所述的线程优化方法,其特征在于,所述根据所述依赖线程集合及历史依赖信息,获取所述最佳线程,包括:确定多个所述第一线程集合中,占用终端系统资源最少的所述第一线程集合为最佳线程;或根据多个所述第一线程集合的启动时间和占用终端系统资源,确定所述最佳线程。4.根据权利要求2所述的线程优化方法,其特征在于,所述根据所述依赖线程集合及历史依赖信息,获取所述最佳线程,包括:获取启动时间最短的所述第一线程集合对应的第一依赖子线程中,正在运行的所述第一依赖子线程的第一数量;获取所述第二线程集合对应的第二依赖子线程中,正在运行的所述第二依赖子线程的第二数量;比较所述第一数量和所述第二数量,以确定所述最佳线程。5.根据权利要求1所述的线程优化方法,其特征在于,所述对所述最佳线程提速,以运行所述当前应用,包括:获取终端当前的状态信息;根据所述状态信息,提升所述最佳线程的启动速度,以运行所述当前应用。6.根据权利要求1所述的线程优化方法,其特征在于,在获取所述最佳线程后,还包括:中断当前正在运行的线程,并运行所述最佳线程。7.根据权利要求1所述的线程优化方法,其特征在于,还包括:在监控所述依赖线程集合的睡眠时间大于预定时长时,启动所述依赖线程集合。8.一种线程优化装置,其特征在于,包括:第一获取模块,所述第一获取模块用于获取当前应用的关键线程及所述关键线程对应的依赖线程集合;第二获取模块,所述第二获取模块用于根据所述依赖线程集合及历史依赖信息,获取最佳线程;及提速模块,所述提速模块用于对所述最佳线程提速,以运行所述当前应用。9.一种终端,其特征在于,包括处理器,所述处理器用于获取当前应用的关键线程及所述关键线程对应的依赖线程集合;根据所述依赖线程集合及历史依赖信息,获取最佳线程;对所述最佳线程提速,以运行所述当前应用。
10.一种包括计算机程序的非易失性计算机可读存储介质,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1-7任意一项所述的线程优化方法。

技术总结
本申请公开一种线程优化方法、线程优化装置、终端及非易失性计算机可读存储介质。线程优化方法包括:在拍摄界面处于预览状态时,关闭防抖功能,并控制终端的镜头运动到预定位置;及在接收到拍摄指令时,开启防抖功能,以保证拍摄图像的稳定。本申请实施方式的线程优化方法、线程优化装置、终端及非易失性计算机可读存储介质通过对最佳线程提速,以使最佳线程快速启动,如此,在运行当前应用时,当前应用的关键线程因为最佳线程快速启动,从而缩短了启动关键线程的等待时间,以提高了终端运行应用的流畅性,保证了用户的使用体验。保证了用户的使用体验。保证了用户的使用体验。


技术研发人员:孙垒
受保护的技术使用者:OPPO广东移动通信有限公司
技术研发日:2022.02.11
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐