系统资源的调整方法、装置及可读存储介质与流程

文档序号:19737394发布日期:2020-01-18 04:41阅读:174来源:国知局
系统资源的调整方法、装置及可读存储介质与流程

本发明涉及系统资源技术领域,尤其涉及一种系统资源的调整方法、装置及可读存储介质。



背景技术:

现有技术中,终端的前台应用程序的运行往往依赖后台应用返回的数据才能运行,终端搭载的运行系统的资源配置优化一直是终端运行过程中的亟待解决的问题,为了解决上述问题,在一些专利文献中,通过获取用于执行任务的可用计算资源信息,并确定任务集合中每个任务的资源消耗信息;将所述资源消耗信息与所述可用计算资源信息进行比较,将比较结果满足预置的任务调度条件的任务确定为目标任务,从而优化任务调度过程的资源利用率,提高数据仓库的处理性能;或者,通过从目标应用被切换到后台的切换时刻开始计时,若从计时时刻开始,到计时时长达到第一预设时长的第一预设时长之内,目标应用没有被前台应用依赖,则对目标应用进行资源限制处理,从而可防止对目标应用的限制造成对前台应用的影响,提高了对电子设备对应用的处理的灵活性;又如,在另一些专利文献中,通过获取的进程包以及预先存储的调频模式列表,实现终端中cpu调频模式的调整,优化了现有的调频模式的调整技术,降低了移动终端功耗,改善了移动终端性能。又如,在一些专利文献中,通过在目标应用程序中内嵌sdk,使得目标应用程序能够通过该sdk提供的api接口,向操作系统发送自身的应用运行信息,以便操作系统基于应用运行信息制定相应的资源配置策略,从而根据该资源配置策略为目标应用程序分配相应的系统资源;相较于单纯提升终端的硬件性能,本实施例中的操作系统可以针对应用程序所处的运行状态,针对性地为其分配相应系统资源,使得应用程序在不同运行状态下均能够达到良好的运行效果,并降低对终端硬件的依赖。

但是,现有技术中,终端的前台应用当前的显示线程通常需要获取后台线程返回的数据才能运行,后台线程需要等待其他进程执行完毕后,才能执行并获取相应的数据,返回给显示线程,导致显示线程不能及时执行,出现前台应用出现卡顿的现象。现有技术不能解决前台应用显示线程出现卡顿的问题。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种系统资源的调整方法,旨在解决现有技术中前台应用出现卡顿的问题。

为实现上述目的,本发明提供一种系统资源的调整方法,系统资源的调整包括步骤:

s1:获取当前系统资源对应的待优化资源;

s2:根据预设策略调整所述待优化资源。

可选的,所述s2步骤包括:

在所述当前系统资源与所述待优化资源之间存在通信时,获取所述当前系统资源的优先级以及对应的通信请求;

获取响应所述通信请求的所述待优化资源的优先级;

调整所述当前系统资源和/或所述待优化资源的优先级,以使所述待优化资源的优先级高于或者等于所述当前系统资源的优先级。

可选的,所述s2步骤,还包括:

将所述待优化资源的资源信息存入所述当前系统资源的栈中;

在所述待优化资源运行完毕后,且所述待优化资源的资源信息与所述栈的栈顶信息匹配时,取出所述栈顶信息以恢复所述待优化资源的初始优先级。

可选的,所述s2步骤包括:

在所述待优化资源为预设资源时,调整所述预设资源的优先级高于或者等于所述当前系统资源的优先级。

可选的,所述s2步骤,还包括:

将预设资源的资源信息存入所述当前系统资源的栈中;

在所述预设资源运行完毕后,控制所述预设资源释放相应资源,并在所述预设资源的资源信息与所述栈的栈顶信息进行匹配时,取出所述栈顶信息以恢复所述预设资源的初始优先级。

可选的,所述调整方法还包括:

当发生接收到当前系统资源对应的切换指令、当前系统资源出现错误的至少一种情况时,取出所述栈内存储的资源信息。

可选地,所述s1步骤之前,还包括:

在预设时间段和/或预设地理围栏内,将使用时长大于或等于预设时长,和/或开启频次大于或等于预设频次的系统资源作为预设资源;

在当前系统资源对应的资源为所述预设资源时,执行获取当前系统资源对应的待优化资源的步骤。

可选地,所述当前系统资源和/或所述待优化资源包括应用、进程、线程中的至少一种。

为实现上述目的,本发明还提供一种系统资源的调整装置,所述系统资源的调整装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的系统资源的调整程序,所述系统资源的调整程序被所述处理器执行时实现如上述任一项所述的系统资源的调整方法的步骤。

为实现上述目的,本发明还提供一种可读存储介质,所述计算机可读存储介质上存储有系统资源的调整程序,所述系统资源的调整程序被处理器执行时实现如上述任一项所述的系统资源的调整方法的步骤。

本发明的技术方案通过获取当前系统资源对应的待优化资源;根据预设策略调整所述待优化资源,以使当前系统资源所依赖的待优化资源的优先级提高,从而使得待优化资源更快运行,从而避免终端运行卡顿,提高应用运行流畅性。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图;

图2为本发明系统资源的调整方法的一实施例的流程示意图;

图3为本发明系统资源的调整方法的步骤s2的一实施例的具体流程示意图;

图4为本发明系统资源的调整方法的另一实施例的流程示意图;

图5为本发明系统资源的调整方法的步骤s2另一实施例的具体流程示意图;

图6为本发明系统资源的调整方法的再一实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明的技术方案主要是:

s1:获取当前系统资源对应的待优化资源;

s2:根据预设策略调整所述待优化资源。

现有技术中,终端的前台应用当前的显示线程通常需要获取后台线程返回的数据才能运行,后台线程需要等待其他进程执行完毕后,才能执行并获取相应的数据,返回给显示线程,导致显示线程不能及时执行,出现前台应用出现卡顿的现象。现有技术不能解决前台应用显示线程出现卡顿的问题。

本发明的技术方案通过获取当前系统资源对应的待优化资源;根据预设策略调整所述待优化资源,以使当前系统资源所依赖的待优化资源的优先级提高,从而使得待优化资源更快运行,从而避免终端运行卡顿,提高应用运行流畅性。

如图1所示,图1是本发明实施例方案涉及的终端的硬件运行环境示意图。

本发明实施例终端为移动终端或者固定终端,比如手机。如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard)、遥控器,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端的结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及装置的控制程序。

在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的装置的控制程序,并执行以下操作:

s1:获取当前系统资源对应的待优化资源;

s2:根据预设策略调整所述待优化资源。

进一步地,处理器1001可以调用存储器1005中存储的装置的控制程序,还执行以下操作:

在所述当前系统资源与所述待优化资源之间存在通信时,获取所述当前系统资源的优先级以及对应的通信请求;

将所述待优化资源的资源信息存入所述当前系统资源的栈中;

在所述待优化资源运行完毕后,且所述待优化资源的资源信息与所述栈的栈顶信息匹配时,取出所述栈顶信息以恢复所述待优化资源的初始优先级。

进一步地,处理器1001可以调用存储器1005中存储的装置的控制程序,还执行以下操作:

将所述待优化资源的资源信息存入所述当前系统资源的栈中;

在所述待优化资源运行完毕后,且所述待优化资源的资源信息与所述栈的栈顶信息匹配时,取出所述栈顶信息以恢复所述待优化资源的初始优先级。

进一步地,处理器1001可以调用存储器1005中存储的装置的控制程序,还执行以下操作:

在所述待优化资源为预设资源时,调整所述预设资源的优先级高于或者等于所述当前系统资源的优先级。

进一步地,处理器1001可以调用存储器1005中存储的装置的控制程序,还执行以下操作:

将预设资源的资源信息存入所述当前系统资源的栈中;

在所述预设资源运行完毕后,控制所述预设资源释放相应资源,并在所述预设资源的资源信息与所述栈的栈顶信息进行匹配时,取出所述栈顶信息以恢复所述预设资源的初始优先级。

进一步地,处理器1001可以调用存储器1005中存储的装置的控制程序,还执行以下操作:

当发生接收到当前系统资源对应的切换指令、当前系统资源出现错误的至少一种情况时,取出所述栈内存储的资源信息。

进一步地,处理器1001可以调用存储器1005中存储的装置的控制程序,还执行以下操作:

在预设时间段和/或预设地理围栏内,将使用时长大于或等于预设时长,和/或开启频次大于或等于预设频次的系统资源作为预设资源;

在当前系统资源对应的资源为所述预设资源时,执行获取当前系统资源对应的待优化资源的步骤。

进一步地,处理器1001可以调用存储器1005中存储的装置的控制程序,还执行以下操作:

所述当前系统资源和/或所述待优化资源包括应用、进程、线程中的至少一种。

请参照图2,本发明的第1实施例中,所述系统资源的调整方法包括以下步骤:

步骤s1,获取当前系统资源对应的待优化资源。

在本实施例中,所述当前系统资源和/或所述待优化资源包括应用、进程、线程中的至少一种。以下以所述当前系统资源为当前运行线程,所述待优化资源为待优化线程为例进行说明,可以理解的是,以下所有实施例中,当前运行线程可对应的替换成当前运行应用以及对应的当前运行进程,所述待优化线程可对应的替换成待优化应用或者对应的待优化进程。

在本实施例中,应用可以根据运行的状态分为前台应用和后台应用。前台应用是指在终端的前台运行的应用,前台应用可以在与在前台显示并与用户实现交互。后台应用是指在终端的后台运行的应用,后台应用一般不能在前台显示并与用户实现交互过程。终端可控制不同应用之间的前后台运行的切换。一个应用(application,简称app)的运行通常是由相关的多个进程的运行而体现的。进程(process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。线程是进程的一个实体,是中央处理器(cpu)调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,一个应用运行的进程至少包括一个以上的线程,一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。本市实施例中的应用可为游戏类应用、音乐类应用或社交类应用或支付类应用等类型的应用。例如,用户可以通过游戏类应用玩游戏,也可以通过视频类应用看视频,还可以通过音乐类应用播放音乐等。

在本实施例中,依赖表示表示一个应用需要利用于另一个或多个应用的数据才能顺利实现对该一个应用的执行的关系。存在依赖关系的两个应用,分别为被依赖的应用和依赖的应用。由于应用的运行通常是由相关的多个进程的运行而体现的,应用之间的依赖也表现为进程之间的依赖。比如应用a中的某一进程a依赖于应用b中的某一进程b,即该进程b被进程a依赖,进程a需要利用进程b的数据才能实现对该进程a的执行,也说明了应用a依赖于应用b,或者说应用b被应用a依赖,应用a需要利用应用b的数据才能实现对该应用a的执行,此时,应用a即为被依赖的应用。可以理解地,依赖的应用还可能为前台应用,被依赖的应用可能为后台应用。终端可从后台应用集合中进行检测,以查询出是否存在被前台应用依赖的后台应用。

在本实施例中,所述当前运行线程可以是前台应用运行时对应的进程中的显示线程,也可以是后台应用运行时对应的进程中的某一后台线程,以下以所述当前运行线程为终端显示界面的显示进程为例进行说明。在一实施例中,与所述当前运行线程对应的待优化线程,也即,被所述当前运行线程依赖的后台应用的某一线程,当前运行线程需要其依赖的所述待优化应用返回相应的数据才能继续执行。可以理解,由于当前运行线程需要对应的所述待优化应用返回相应的数据才能继续执行,因此,在所述当前运行线程之前,首先要执行所述待优化线程,此时,所述待优化应用就转变成当前运行线程,在被依赖的线程执行并返回对应数据给所述依赖的线程后,所述依赖的线程才能继续运行,可见,所述当前运行线程是终端当前在运行的线程,当前运行线程可以是依赖其他线程的线程,也可以是被其他线程依赖的线程。

在一实施例中,所述当前运行线程对应的线程可能是一个或者多个线程,例如,利用微信应用进行拍照时,微信的当前显示线程需要调用相机线程;在通过微信应用进行视频聊天时,可能需要同时调用相机线程以及麦克风线程等。

步骤s20,根据预设策略调整所述待优化资源。在本实施例中,所述调整策略的调整目的在于提高所述待优化资源的系统优先级,以让所述待优化资源的优先级比调整前的优先级要高,以使得所述待优化资源更快运行以向所述当前系统资源返回运行时所需要的数据,例如,所述当前系统资源为当前运行线程,所述待优化资源为待优化线程时,所述待优化线程是所述当前运行线程所依赖的线程,调整所述待优化线程的优先级的结果是,调整后的所述待优化线程的优先级等于或者高于所述当前运行线程的优先级。优先级表示应用线程对资源占用的优先级别,用于反映相应线程的重要程度。优先级可包括多种级别,不同线程的优先级不一定相同,可以预先进行设置各个线程用的优先级。例如,可以将系统级应用的线程设置为较高的优先级,第三方应用的线程设置为较低的优先级。资源是指终端在处理应用事件时所必须用到的软件或硬件资源,比如终端的cpu(centralprocessingunit,中央处理器)、内存(memory)、硬件、网络资源、io(input-output,输入输出)等。

在一实施例中,所述待优化线程的优先级可以是待优化线程能够获得上述资源的相对大小,一般通过数值或者比例进行体现,例如,所述当前运行线程对应的优先级数值为100,而所述待优化线程的优先级对应的优先级数值为80,则所述当前运行线程对应的优先级高于所述待优化线程的优先级;再如,所述当前运行线程对应的优先级比例为1%,而所述待优化线程的优先级对应的优先级数值为2%,则所述当前运行线程对应的优先级低于所述待优化线程的优先级。

在本实施例中,根据所述当前运行线程获取到对应的也即当前运行线程依赖的待优化线程后,对所述待优化线程的优先级进行调整,以使调整后的所述待优化线程的优先级等于或者高于所述当前运行线程的优先级,例如,当所述当前运行线程对应的优先级数值为100时,而所述待优化线程的优先级对应的优先级数值为80时,则将所述待优化线程的优先级调整等于100或者大于100,当所述当前运行线程进入休眠状态,而控制所述待优化线程首先执行时,系统可以给到所述待优化线程与其优先级(调整后的优先级)对应的资源,以让所述待优化线程(被依赖线程)执行时,拥有等于或者多于依赖线程原来的资源,以更快的完成运行过程,向依赖线程返回对应的数据。在所述当前运行线程为上述显示线程时,可以让显示线程及时获取到执行所需要的数据,避免所述显示进程出现卡顿。

优选地,将所述待优化线程的优先级调整至等于所述当前运行线程的优先级,也即,让所述待优化线程(被依赖线程)运行时,拥有与依赖线程原来的资源相等的资源,以使所述待优化线程(被依赖线程)快速执行完毕,同时避免所述待优化线程(被依赖线程)拥有多于依赖线程原来的资源时,对系统中存在的其他线程的优先级造成影响。

在另一实施例中,所述当前运行线程对应的待优化线程不是所述当前运行线程所依赖的线程,而是与所述当前运行线程不存在依赖关系的线程,通过降低所述待优化线程的优先级,使得所述待优化线程的优先级低于或者等于当前运行线程的优先级,由于优先级是个相对的概念,所述当前运行线程不依赖的线程的优先级降低,因此,所述当前运行线程依赖的线程的优先级就会升高,如此,同样可以让当前运行线程所依赖的后台线程快速执行,向当前运行线程返回对应的数据。在所述当前运行线程为上述显示线程时,同样可以让显示线程及时获取到执行所需要的数据,避免所述显示进程出现卡顿。需要说明的是,以下实施例中,均以所述当前运行线程对应的待优化线程是所述当前运行线程所依赖的后台线程进行说明。在又一实施例中,也可以通过降低当前运行线程的优先级,以提高所述待优化线程的优先级。

综上所述,本发明的技术方案通过获取当前运行线程对应的待优化线程,并调整所述待优化线程的优先级,以使所述待优化线程的优先级等于或者高于所述当前运行线程的优先级,在所述待优化线程运行时,拥有与所述当前运行线程相等或者更多的cpu资源,以让所述待优化线程更快的完成运行过程并返回对应的数据给所述当前运行线程,在所述当前运行线程为终端的显示线程时,可以让显示线程及时获取到执行所需要的数据,避免所述显示进程出现卡顿,提高前台应用运行的流畅性。同理,本发明的技术方案中所述资源包括应用、线程以及进程中的至少一种,通过获取当前系统资源对应的待优化资源;根据预设策略调整所述待优化资源,以使当前系统资源所依赖的待优化资源的优先级提高,从而使得待优化资源更快运行,从而避免终端运行卡顿,提高应用运行流畅性。

可选地,在第2实施例中,如图3所示,在上述第1实施例基础上,所述步骤s20包括:

步骤s21,在所述当前系统资源与所述待优化资源之间存在通信时,获取所述当前系统资源的优先级以及对应的通信请求;

步骤s22,获取响应所述通信请求的所述待优化资源的优先级;

步骤s23,调整所述当前系统资源和/或所述待优化资源的优先级,以使所述待优化资源的优先级高于或者等于所述当前系统资源的优先级。

在本实施例中,调整的过程可以是,在所述当前运行线程的优先级高于所述待优化线程的优先级时,将所述待优化线程的优先级调整至等于或者高于所述当前运行线程的优先级;调整的过程也可以是,将所述当前运行线程的优先级调整至等于或者低于所述待优化线程的优先级,如此,同样能够达到将所述待优化线程的优先级等于或者高于所述当前运行线程的优先级的效果,以下以通过调整所述待优化线程的优先级以使得所述待优化线程的优先级等于或者高于所述当前线程的优先级进行说明。

在本实施例中,以所述资源为线程为例进行说明,所述当前运行线程与所述待优化线程可以是同一进程内的两个线程,也可以是分属于不同进程的两个线程;在所述当前运行线程与所述待优化线程是分属于不同进程的两个线程时,所述当前运行线程与所述待优化线程之间就存在进程间通信(ipc),常见的进程间通信机制包括binder通信、管道(pipe)、信号(signal)和跟踪(trace)、插口(socket)、报文队列(message)、共享内存(sharememory)和信号量(semaphore)等。

以下以binder通信机制为例进行说明:所述当前运行线程为binder客户端(也叫client端、请求端、发送端)创建的向binder服务端(也叫server端)请求返回数据的通信请求对应的线程,所述待优化线程为所述binder服务端相应所述通信请求时,获取对应的数据并返回给所述binder客户端对应的线程。在接收到所述binder客户端的通信请求时,保存通信请求的同时,获取所述通信请求对应的线程也即所述当前运行线程(依赖线程)的优先级,并在所述当前运行线程的优先级高于所述待优化线程的优先级时,调整所述待优化线程的优先级,以使调整后的所述待优化线程的优先级等于或者高于所述当前运行线程的优先级;在所述当前运行线程的优先级等于或者低于所述待优化线程的优先级时,则保留所述待优化线程的优先级不做调整,以保证binder服务端执行的线程快速获取到对应的数据,并返回给所述binder客户端中等待接收数据的线程也即所述当前运行线程(依赖线程),保证所述当前运行线程快速运行。

可选地,在第3实施例中,如图4所示,在上述第1-2实施例基础上,执行步骤s20的同时,执行以下步骤:

步骤s30,将所述待优化资源的资源信息存入所述当前系统资源的栈中;

步骤s40,在所述待优化资源运行完毕后,且所述待优化资源的资源信息与所述栈的栈顶信息匹配时,取出所述栈顶信息以恢复所述待优化资源的初始优先级。

在本实施例中,以所述资源为线程为例进行说明,系统为所述当前运行线程创建一个栈,以用于保存所述待优化线程的线程信息(线程信息也即上述的资源信息中一种,可以理解,所述资源为应用时,所述资源信息为应用信息;所述资源为进程时,所述资源信息为进程信息),其中,所述线程信息至少包括线程的标识信息如线程号、线程的初始优先级以及线程状态等。在执行所述步骤s20的同时,也即,调整所述待优化线程的优先级的同时,当然可以是在调整所述待优化线程的优先级之前,将所述待优化线程的线程信息存入所述栈中,在所述待优化线程执行完毕后,则取出所述待优化线程存在所述栈中的线程信息,以恢复所述待优化线程的初始优先级,之所以要恢复所述待优化线程的初始优先级是因为,调整后的待优化线程(被依赖线程)的优先级是针对所述当前运行线程(依赖线程),用于保证所述当前运行线程(依赖线程)的快速执行,在所述待优化线程(被依赖线程)执行完毕后并向所述当前运行线程(依赖线程)返回对应的数据后,调整后的待优化线程(被依赖线程)的优先级不在具有针对性,为了避免调整后的待优化线程(被依赖线程)的优先级对系统中其他线程的优先级造成影响,保证系统中其他线程按照各自的优先级执行。

在本实施例中,依赖线程以及被依赖线程是相对而言的,例如所述当前运行线程a是依赖线程,所述待优化线程b是被依赖线程,所述待优化线程也可能依赖线程c执行,此时,相对于线程c而言,所述待优化线程b就是是依赖线程,也即,线程a、b、c依次依赖,则线程b、c的优先级被依次调整;在先执行线程b时,需要先将线程b的线程信息存入所述栈中,又因为线程b依赖线程c,则线程c要先于线程b执行,则需要将线程c的线程信息存入栈中,此时,栈内存有线程c以及线程b的线程信息,且由于线程c的线程信息相比于线程b的线程信息后进栈,因此线程c的线程信息处于栈顶;在线程c执行完毕将数据放回给线程b后,需将线程c与栈顶信息进行匹配,在匹配成功时,将所述栈顶信息也即所述线程c的的线程信息取出,以恢复线程c的初始优先级;线程b接到线程c返回的数据后继续执行,在线程b执行完毕将数据放回给线程a后,需将线程b与栈顶信息进行匹配,在匹配成功时,将所述栈顶信息也即所述线程b的的线程信息取出,以恢复线程b的初始优先级。因此,当多个线程之间依次依赖时,需要将线程的线程信息依次进栈,并在线程执行完毕后依次出栈,以恢复多个线程的初始优先级。

可选地,在第4实施例中,在上述第1-3实施例基础上,所述步骤s20包括:

步骤s24,在所述待优化资源为预设资源时,调整所述预设资源的优先级高于或者等于所述当前系统资源的优先级。

在本实施例中,以所述预设资源为为持锁线程为例进行说明,所述预设资源为为持锁线程时,调整所述持锁线程的优先级等于或者高于所述当前运行线程的优先级;所述待优化线程(被依赖线程)为持锁线程,而当前运行线程(依赖线程)需要获得所才能继续执行,因此,所述持锁线程需要释放锁,而所述持锁线程释放所就要让所述持锁线程先执行,因此,本实施例中,调整所述持锁线程的优先级,以使持锁线程的优先级等于或者高于所述当前运行线程的优先级,以让所述持锁线程快速执行,并在持锁线程执行完毕后,释放锁并向所述当前运行线程返回数据,所述当前运行线程获得锁以及持锁线程返回的数据后继续执行,以避免当前运行线程对应的前台应用卡顿,提高前台应用运行时的流程性。

优选地,将所述持锁线程的优先级调整至等于所述当前运行线程的优先级,也即,让所述持锁线程(被依赖线程)运行时,拥有与依赖线程原来的资源相等的资源,以所述持锁线程线程(被依赖线程)快速执行完毕,同时避免所述持锁线程线程(被依赖线程)拥有多于依赖线程原来的资源时,对系统中存在的其他线程的优先级造成影响。

可选地,在第5实施例中,如图5所示,在上述第4实施例基础上,执行步骤s20的同时,执行以下步骤:

步骤s24,将预设资源的资源信息存入所述当前系统资源的栈中;

步骤s25,在所述预设资源运行完毕后,控制所述预设资源释放相应资源,并在所述预设资源的资源信息与所述栈的栈顶信息进行匹配时,取出所述栈顶信息以恢复所述预设资源的初始优先级。

在本实施例中,以所述预设资源为为持锁线程为例进行说明,系统为所述当前运行线程创建一个栈,以用于保存所述持锁线程的线程信息。在执行所述步骤s20的同时,也即,调整所述持锁线程的优先级的同时,当然也可以是在调整所述待优化线程的优先级之前,将所述持锁线程的线程信息存入所述栈中,在所述持锁线程执行完毕后,则取出所述持锁线程存在所述栈中的线程信息,以恢复所述持锁线程的初始优先级,避免调整后的持锁线程(被依赖线程)的优先级对系统中其他线程的优先级造成影响,保证系统中其他线程按照各自的优先级执行。在本实施中,控制所述预设资源释放相应资源,可以是控制所述持锁线程释放锁,也即控制所述持锁线程所占用的资源。

在本实施例中,当存在多个线程相互依赖时,多个相互依赖的线程中可能存在多个线程锁,因此,在所述持锁线程运行完毕后,控制所述持锁线程释放锁,需要将所述持锁线程与所述栈的栈顶信息进行匹配,在所述持锁线程与所栈顶信息匹配时,取出所述栈顶信息以恢复所述持锁线程的初始优先级,避免因为多个线程锁的存在,而导致的所述持锁线程与所栈顶信息不匹配时,将某一持锁线程d的优先级错误恢复成另一持锁线程e的优先级。

可选地,在第6实施例中,在上述第3或者5实施例基础上,所述调整方法还包括:

步骤s50,当发生接收到当前系统资源对应的切换指令、当前系统资源出现错误的至少一种情况时,取出所述栈内存储的资源信息。在本实施例中,以所述当前系统资源为持锁线程为例进行说明,当接收到前台应用的切换指令时,表明用户需要切换前台应用,此时,切换前调整的线程的优先级已不适用于切换后的前台应用,因此,取出所述栈内存储的所有线程的线程信息,以恢复调整后的线程的初始优先级,并调整切换后的前台应用的显示进程所依赖的进程的优先级,以保证为切换后的前台应用运行的流畅性。同理,在当前运行线程对应的进程因为意外情况而出现错误例如线程崩溃时,也取出所述栈内存储的所有线程的线程信息,以恢复调整后的线程的初始优先级,该所有线程包括上述的持锁线程以及不持锁的线程,该所有线程中的线程不必执行完毕后与栈顶信息进行匹配,而是依次取出即可,从而提高所述线程信息出栈的效率。

可选地,在第7实施例中,如图6所示,在上述第1-6实施例基础上,所述步骤s10之前包括:

步骤s60,在预设时间段和/或预设地理围栏内,将使用时长大于或等于预设时长,和/或开启频次大于或等于预设频次的系统资源作为预设资源;

在当前系统资源对应的资源为所述预设资源时,执行获取当前系统资源对应的待优化资源的步骤。

在本实施例中,以所述当前系统资源为应用为例进行说明,例如,预设时间段可以是一天,在一天内,将使用时长大于预设时长如5小时及/或开启频次大于预设频次如10次的应用作为预设应用;再如,预设时间段可以是一小时,在一小时内,将使用时长大于预设时长如20分钟及/或开启频次大于预设频次如2次的应用作为预设应用;对所述预设应用的线程对应的待优化线程的优先级进行调整,对不属于预设应用的线程对应的待优化线程的优先级不做调整,从而避免对所有线程对应的待优化线程的优先级进行调整,降低系统功耗,且仅对预设应用的线程对应的待优化线程的优先级进行调整,在用户看来,不仅满足了用户的日常需求,也提高了前台应用运行的流畅性。进一步地,本实施例中,为了减少优先级的调整次数,交底系统功耗,可以只将预设时间内,使用时长最长及/或开启频次最高的应用作为预设应用。

在本实施例中,预设地理围栏划分出一个预设的虚拟的地理区域,例如,用户家中、用户的办公场所或者大型购物商城等,在预设地理围栏内,将使用时长大于预设时长及/或开启频次大于预设频次的应用作为预设应用,该使用时长以及开启频次可以是,相对于终端在预设地理围栏内的总时长而言地,也可以是相对于终端在预设地理围栏内的预设周期而言的,该预设时长、开启频次可以根据实际情况进行调整;例如,终端在预设地理围栏内如家中的总时长为10000小时,则预设时长可设置为2000小时,终端在预设地理围栏内的预设周期为一个月,则所述预设时长可为200小时,预设频次的调整同理;本实施例对所述预设应用的线程对应的待优化线程的优先级进行调整,对不属于预设应用的线程对应的待优化线程的优先级不做调整,从而避免对所有线程对应的待优化线程的优先级进行调整,降低系统功耗,且仅对预设应用的线程对应的待优化线程的优先级进行调整,在用户看来,不仅满足了用户的日常需求,也提高了前台应用运行的流畅性。进一步地,本实施例中,为了减少优先级的调整次数,交底系统功耗,可以只将预设地理围栏内,使用时长最长及/或开启频次最高的应用作为预设应用。

为实现上述目的,本发明还提供一种系统资源的调整装置,所述系统资源的调整装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的系统资源的调整程序,所述系统资源的调整程序被所述处理器执行时实现如上所述的系统资源的调整方法的步骤。

为实现上述目的,本发明还提供一种可读存储介质,所述计算机可读存储介质上存储有系统资源的调整程序,所述系统资源的调整程序被处理器执行时实现如上所述的系统资源的调整方法的步骤。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是电视机,手机,计算机,服务器,装置,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1