CN115033306B - 应用退出方法和装置 - Google Patents

应用退出方法和装置 Download PDF

Info

Publication number
CN115033306B
CN115033306B CN202210746305.1A CN202210746305A CN115033306B CN 115033306 B CN115033306 B CN 115033306B CN 202210746305 A CN202210746305 A CN 202210746305A CN 115033306 B CN115033306 B CN 115033306B
Authority
CN
China
Prior art keywords
application
thread
cache queue
threads
cpu core
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.)
Active
Application number
CN202210746305.1A
Other languages
English (en)
Other versions
CN115033306A (zh
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.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication Co 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 Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Priority to CN202210746305.1A priority Critical patent/CN115033306B/zh
Publication of CN115033306A publication Critical patent/CN115033306A/zh
Application granted granted Critical
Publication of CN115033306B publication Critical patent/CN115033306B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请提供一种应用退出方法和装置,属于通信技术领域。该方法包括:在确定关闭第一应用的情况下,将所述第一应用的线程添加至缓存队列中,所述第一应用为后台运行的应用;控制所述缓存队列中的线程按照预设速度出队;在第一中央处理器CPU核执行出队线程的退出操作,所述第一CPU核为所述缓存队列中线程的可用CPU核,所述第一CPU核包括M个CPU核,M为正整数。

Description

应用退出方法和装置
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种应用退出方法和装置。
背景技术
随着通信技术的发展,电子设备中安装的各类应用越来越多,例如视频类应用、游戏类应用以及即时通讯类应用等。这使得电子设备经常需要在前台和后台运行很多个应用。由于电子设备的中央处理器(Central Processing Unit,CPU)资源和内存值有限,当电子设备上开启的应用数量较多时,电子设备上的CPU资源和内存值不够用,会导致电子设备出现卡顿现象。
发明内容
本申请实施例提供一种应用退出方法和装置,能够解决因电子设备上开启的应用数量较多,导致电子设备的卡顿问题。
为解决上述问题,本申请是这样实现的:
第一方面,本申请实施例提供了一种应用退出方法,包括:
在确定关闭第一应用的情况下,将所述第一应用的线程添加至缓存队列中,所述第一应用为后台运行的应用;
控制所述缓存队列中的线程按照预设速度出队;
在第一中央处理器CPU核执行出队线程的退出操作,所述第一CPU核为所述缓存队列中线程的可用CPU核,所述第一CPU核包括M个CPU核,M为正整数。
第二方面,本申请实施例还提供一种应用退出装置,包括:
添加模块,用于在确定关闭第一应用的情况下,将所述第一应用的线程添加至缓存队列中,所述第一应用为后台运行的应用;
控制模块,用于控制所述缓存队列中的线程按照预设速度出队;
第一执行模块,用于在中央处理器CPU资源中的第一CPU核执行出队线程的退出操作,所述第一CPU核为所述缓存队列中线程的可用CPU核,所述第一CPU核包括M个CPU核,M为正整数。
第三方面,本申请实施例还提供一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的应用退出方法。
第四方面,本申请实施例还提供一种可读存储介质,该可读存储介质上存储有程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的应用退出方法。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
在本申请实施例中,电子设备可以执行至少一个后台应用的退出操作。具体地,将所述至少一个后台应用的线程添加至缓存队列中,控制所述缓存队列中的线程按照预设速度出队在至少一个CPU核执行退出操作。这样,可以一定程度上抑制后台应用的线程退出操作抢占CPU资源,从而可以腾出CPU资源给新应用启动线程,提高新应用的启动速度,进而可以减少或避免电子设备的卡顿现象。
附图说明
图1a是本申请实施例提供的线程退出示意图之一;
图1b是本申请实施例提供的线程退出示意图之二;
图2是本申请实施例提供的应用退出方法的流程图之一;
图3a是本申请实施例提供的线程退出示意图之三;
图3b是本申请实施例提供的线程退出示意图之四;
图3c是本申请实施例提供的线程启动示意图;
图4是本申请实施例提供的应用退出方法的流程图之二;
图5是本申请实施例提供的应用退出装置的结构图;
图6是本申请实施例提供的电子设备的结构图之一;
图7是本申请实施例提供的电子设备的结构图之二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
为了方便理解,以下对本申请实施例涉及的一些内容进行说明:
手机行业的处理器一般都是8核处理器,内存在4吉字节(GigaByte,GB)、8GB或12GB不等。由于一个应用的运行普遍需要占用1GB以上的内存,因此电子设备能同时运行的应用数量有限,内存越小,数量越低。
以8G手机为例,假如现在已经有15个手机软件在运行了,占满了8G内存。这时候若要启动游戏或者相机,而这两个应用启动过程如果需要2G内存。那电子设备就会根据一定优先级策略快速杀掉(退出或关闭)15个软件中的几个,从而把2G内存给游戏或者相机启动。以上这个场景就是典型的复杂场景启动新应用。
杀掉应用,涉及应用线程退出操作。线程退出过程会执行很多清理操作,如图1a所示,包括信号清理、定时器清理、信号量清理、文件清理,内存清理等等,整个耗时高达毫秒(ms)级别。在简单场景下,这个都能非常流畅的快速执行完成,及时释放资源。
多线程退出过程类似,只是共用的资源要等到最后一个线程退出才会真正释放。如图1b所示,前两个线程退出过程,只是简单把共用资源的引用计数递减,直到最晚完成退出才结束,即整个退出时长是从线程3退出开始的时间点持续到线程1退出完成的时间点的。因此,在复杂场景下,被杀线程退出快慢,直接影响了新应用启动的速度。
目前手机存在如下缺陷:
CPU数量限制:手机上的任何操作都是需要处理器来执行的。不仅包括线程启动和退出。当前电子设备普遍都是8核处理器,这样只能同时处理8个线程并发。而且手机行业的处理器数量短时间内不会增加,无法从增加资源来解决问题。
应用多线程数量限制:普遍常用的手机应用一般都有几百(300-700)个线程,一旦突发几个应用同时被杀,就会有大量的线程退出造成CPU拥堵,造成调度浪费,原先ms级别能处理完成的退出过程,要恶化到几百ms。
系统策略限制:手机厂商出于某种省电目的,对后台应用限制运行(用户无感知)。例如原先后台应用可以随意运行在任何核上,但省电策略会对后台应用线程做限制,如限制后台应用只在某2个核上运行,从而达到省电的目的,但这样会加剧阻塞。
多线程并发限制:线程退出一般伴随着新应用启动,8核又要分几个大核给新应用使用,相对来说CPU更拥堵了,不仅造成线程退出效率慢,还间接影响了新应用的启动速度。
用户体验要求:启动过程超过1秒(s),用户体验都会变差。
可见,目前在复杂场景下多线程并发(退出、启动)操作会对CPU造成较大拥堵,使得内存回收效率较低,同时影响新应用的启动。
针对上述问题,本申请实施例提供一种应用退出方法,通过将后台应用的线程添加至缓存队列,控制所述缓存队列中的线程按照预设速度出队在CPU核执行退出操作,可以减少或避免线程退出拥堵,从而可以保证新应用启动的资源,提高新应用的启动速度。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的应用退出方法进行详细地说明。
参见图2,图2是本申请实施例提供的应用退出方法的流程图之一。如图2所示,应用退出方法可以包括以下步骤:
步骤201、在确定关闭第一应用的情况下,将所述第一应用的线程添加至缓存队列中,所述第一应用为后台运行的应用。
在一种可选的实施例中,电子设备可以在检测到用户对第一应用的退出操作的情况下,确定关闭所述第一应用。
在另一种可选的实施例中,电子设备可以在可用内存值小于第一阈值的情况下,确定关闭第一应用。
具体实现时,电子设备可以周期性地执行可用内存资源的检测操作;或者,电子设备可以在接收到某个应用的启动输入的情况下,执行可用内存资源的检测操作,即所述检测操作由新应用(即接收到启动输入的应用)启动触发。内存资源的多少可通过内存值表征,内存值越大,内存资源越多,反之越少。可用内存值可以为当前内存值与预设内存值之间的差值,在一种具体实现方式中,预设内存值可以为电子设备的最大内存值,但不仅限于此。
能够理解的,所述第一阈值可以预先设置,如:所述第一阈值可以大于或等于电子设备安装的应用中各应用启动后所需占用的内存值。或者,所述第一阈值可以基于新应用启动后所需占用的内存值确定,如:所述第一阈值可等于新应用启动后所需占用的内存值。
可以理解地,若可用内存值大于或等于第一阈值,则认为可用内存资源较多,此时若有新应用启动,电子设备不会出现卡顿现象。在此情况下,电子设备可以直接启动新应用。
而若可用内存值小于第一阈值,则认为可用内存资源较少,此时若有新应用启动,容易导致电子设备出现卡顿现象,新应用启动速度慢。因此,在此情况下,电子设备可以执行后台应用退出操作,即关闭或杀掉后台应用,以腾出资源给新应用使用。
具体实现时,电子设备关闭的后台应用(即所述第一应用)可以是随机确定的,也可以是在有新应用启动的情况下,基于各后台应用占用的内存值,以及新应用启动后所需占用的内存值(以下称为第一内存值)确定的,如:将占用的内存值大于或等于所述第一内存值的单个后台应用确定为所述第一应用,或,将占用的内存值之和大于或等于所述第一内存值的至少两个后台应用确定为所述第一应用,所述至少两个后台应用的最后使用时间与当前时间的间隔大于预设值或其他后台应用的最后使用时间与当前时间的间隔。除此之外,还可以是基于一定规则确定的,如:可以将后台应用中退出前台运行的时长达到预设时长的应用确定为第一应用,或,可以将后台应用中最早退出前台运行的预设个应用确定为第一应用。
在本申请实施例中,在确定了关闭的后台应用之后,可以控制这些后台应用的线程排队进入缓存队列。这样,可以通过控制缓存队列中的线程出队速度,控制线程退出的执行,从而可以避免线程退出拥堵,可以将CPU资源优先提供给新应用启动,进而可以提高新应用启动速率。
步骤202、控制所述缓存队列中的线程按照预设速度出队。
所述预设速度,即所述缓存队列的线程出队速度可以用于确定:预设时长内唤醒的线程数量。具体实现时,所述预设速度可以预先设置,或,所述预设速度可以基于所述缓存队列中的线程数确定,具体地,线程数越多,所述预设速度越大,反之越小。
一种实现方式中,线程出队顺序可以与线程进队顺序匹配,如:先入先出,即先进入缓存队列中的线程先出队。另一种实现方式中,线程出队顺序可以随机确定。
步骤203、在第一中央处理器CPU核执行出队线程的退出操作,所述第一CPU核为所述缓存队列中线程的可用CPU核,所述第一CPU核包括M个CPU核,M为正整数。
具体实现时,所述第一CPU核可以包括电子设备的全部或部分CPU核。M的取值可以预先设定,也可以基于其他参数确定,具体可参见下述相关描述,此处不作描述。
一种实现方式中,所述第一CPU核包括的核数量可以与出队线程数量相等,所述第一CPU核包括的核与出队线程可以为一对一的对应关系,即一个CPU核执行一个出队线程的退出操作,在此情况下,电子设备可以同时在所述第一CPU核的各核分别执行对出队线程的退出操作,从而可以提高出队线程的退出效率。
另一种实现方式中,所述第一CPU核包括的核数量可以少于出队线程数量,即所述第一CPU核包括的核与出队线程可以为一对多的对应关系,且不同核处理的线程数可以相等或不等。
再一种实现方式中,所述第一CPU核包括的核数量可以多于出队线程数量,在此情况下,电子设备可以基于所述M个CPU核的使用率,选择使用率较小的CPU核用于执行出队线程的退出操作,以提高线程退出效率。
本实施例的应用退出方法,电子设备可以执行至少一个后台应用的退出操作。具体地,将所述至少一个后台应用的线程添加至缓存队列中,控制所述缓存队列中的线程按照预设速度出队在至少一个CPU核执行退出操作。这样,可以一定程度上抑制后台应用的线程退出操作抢占CPU资源,从而可以腾出CPU资源给新应用启动线程,提高新应用的启动速度,进而可以减少或避免电子设备的卡顿现象。
在一些实施例中,所述控制所述缓存队列中的线程按照预设速度出队,可以包括:
周期性地控制所述缓存队列中的线程出队;
其中,每个周期用于控制所述缓存列队中的M个线程出队,所述M个线程与所述M个CPU核一一对应。
在本实施例中,电子设备可以通过控制所述缓存队列中的线程排队按照一定时间间隔有序出队,使得所述缓存队列中的线程按照预设速度出队,上述时间间隔即为周期长度,可以预先设定或基于所述缓存队列中的线程数确定,如4ms或8ms等。具体实现时,电子设备在控制缓存队列中的M个线程出队之后,间隔一个周期长度,继续控制缓存队列中的M个线程出队,以此类推,直至缓存队列中的线程全部出队。
所述M个线程与所述M个CPU核一一对应,可以理解为:在所述M个CPU核执行所述M个线程的退出操作,其中,某线程的退出操作通过该线程对应的CPU核执行。
为方便理解本实施例的实现,结合图3a和图3b进行示例说明。
假设第一应用为应用1。在现有技术中,如图3a所示,被杀应用1的大多数线程集中挤兑在CPU2和CPU3,造成CPU拥堵。而采用本实施例的方式控制线程退出,如图3b所示,缓存队列中的线程可以排队按照一定时间间隔有序地在CPU0-CPU4轮流执行退出操作,即线程较平均的分布在CPU0-CPU4上,这样就可以避免CPU挤兑。
可见,通过周期性地控制所述缓存队列中的线程出队,并在第一CPU核执行退出操作,可以抑制后台应用的线程退出操作抢占CPU资源,从而可以腾出CPU资源供新应用启动线程,提高新应用的启动速度,进而可以减少或避免电子设备的卡顿现象。
在一些实施例中,所述在确定关闭第一应用的情况下,将第一应用的线程添加至缓存队列中之前,所述方法还可以包括:
接收对第二应用的启动输入;
所述启动输入,在可用内存值小于第一阈值的情况下,确定关闭所述第一应用,所述第一阈值为所述第二应用启动后所需占用的内存值;
所述在确定关闭第一应用的情况下,将第一应用的线程添加至缓存队列中之后,所述方法还包括:
在所述缓存队列的线程出队间隔时间,在所述第一CPU核执行所述第二应用的线程的运行操作。
在本实施例中,由新应用启动触发可用内存资源的检测操作,进而触发后台应用的关闭。因此,可以将新应用启动后所需占用的内存值作为第一阈值,将其与可用内存值进行比较,以确定是否需要杀掉部分后台应用来确保新应用的启动。在可用内存值小于新应用启动后所需占用的内存值的情况下,说明可用内存值不足以支撑新应用使用,因此,可以杀掉部分后台应用,将这部分后台应用的线程排队进入缓存队列。
在本实施例中,线程的退出和启动可以并行执行,具体地,可以将所述缓存队列的线程出队间隔时间留给新应用的线程使用,即在所述第一CPU核执行第i次线程出队操作之后,在所述第一CPU核执行第i+1次线程出队操作之前,可以在所述第一CPU核执行新应用的线程运行操作,i为正整数。为方便理解,可参见图3c,在图3c中,实线圆圈的线程为被杀应用的线程,虚线圆圈的线程为启动的新应用的线程。
可见,通过上述方式,不会造成退出线程和启动线程之间的资源挤兑,可以提高新应用的启动速度。
在一些实施例中,所述在确定关闭第一应用的情况下,将第一应用的线程添加至缓存队列中之后,所述方法还可以包括:
通过第一内核线程执行内存回收操作;
其中,所述第一内核线程在目标CPU核执行。
在本实施例中,电子设备可以创建至少一个内核线程用于快速回收内存,所述至少一个内核线程可以在每个线程退出之后,就回收该线程占用的内存,无需等到全部线程退出才能执行内存回收,这样,可以避免在多线程退出场景中,直至最后一个线程退出后才可以进行内存回收,从而导致内存回收不及时的情况,提高了内存回收效率,进而可以提高新应用的启动效率。
所述第一内核线程可以包括所述至少一个内核线程中的部分或全部。
一种实现方式中,所述第一内核线程可以与所述第一应用对应,在此实现方式中,电子设备可以预先设置内核线程与各应用之间的对应关系,各内核线程可以用于回收其对应的应用的线程所占用的内存,这样,可以减少内存回收过程中线程的挤兑,提高内存回收效率。
另一种实现方式中,所述第一内核线程可以随机确定。
在实际应用中,所述第一内核线程可以始终处于唤醒状态,在此情况下,电子设备可以直接使用所述第一内核线程执行内存回收。或者,所述第一内核线程可以在无需执行内存回收时处于休眠待命状态,在将第一应用的线程添加至缓存队列中之后,电子设备即可唤醒所述第一内核线程,由所述第一内核线程执行内存回收,这样,可以节约CPU资源,也可以降低电子设备的耗电量。
所述第一内核线程可以在目标CPU核执行,所述目标CPU核可以为电子设备的任一核,或,电子设备当前使用率最低的CPU核,具体可根据实际情况决定,本申请实施例对此不作限定。另外,在一些实施例中,如图3b和图3c所示,第一内核线程O1在CPU5执行,而线程的退出和启动在CPU0-CPU3执行,即所述目标CPU核可以与前述第一CPU核不同。当然,可以理解地是,在其他实施例中,所述目标CPU核与前述第一CPU核存可以存在相同的CPU核,具体可根据实际需求决定,本申请实施例对此不作限定。
可见,通过上述方式,可以实现内存的快速回收,从而可以提高新应用的启动效率。
在一些实施例中,所述在确定关闭第一应用的情况下,将第一应用的线程添加至缓存队列中之后,所述在中央处理器CPU资源中的第一CPU核,执行所述N个线程的退出操作之前,所述方法还可以包括:
根据第一信息,确定M的取值;
其中,所述第一信息包括以下至少一项:CPU资源的使用率、所述缓存队列中线程所属的应用的类型以及所述缓存队列中的线程数。
在根据CPU资源的使用率,确定M的取值的场景中,CPU资源的使用率与M的取值可以负相关,即CPU资源的使用率越高,M的取值可以越小,这样,可以减少线程退出占用的CPU资源,提高CPU资源的使用率。一种可选实施方式中,电子设备可以预先设置CPU资源的使用率区间与M值之间的对应关系,在确定CPU资源的当前使用率之后,即可确定其所在的区间,之后,将该区间对应的M值确定为M的取值。
在根据所述缓存队列中线程所属的应用的类型,确定M的取值的场景中,电子设备可以预先设置各类型的应用与M值之间的对应关系,在确定所述缓存队列中线程所属的应用的类型之后,可以将该类型的应用对应的M值确定为M的取值。在所述缓存队列中线程所属的应用对应两个或两个以上的类型的情况下,可以将各类型应用对应的多个M值中的最大值确定为M的取值。一种可选的实施方式中,应用类型可以基于应用与用户的交互程度进行划分,应用类型对应的交互程度可以与M值正相关,即应用类型对应的交互程度越高,线程数量越多,因此,该应用类型对应的M值可以设置更大,这样,可以提高该应用类型的线程退出效率。
在根据所述缓存队列中的线程数,确定M的取值的场景中,线程数与M值可以正相关,这样,可以保证线程退出效率。
当然,在某些实施方式中,电子设备可以结合上述信息中的两个或三个,灵活确定M的取值,具体可根据实际情况决定,本申请实施例对此不作限定。
可见,通过上述方式确定的M的取值,可以提高线程的退出效率。
在另一些实施例中,M的取值可以与电子设备包括的CPU核总数相关,如,M的取值可以为CPU核总数的一半,但不仅限于此。
值得注意地是,电子设备在确定M的取值之后,具体选用哪M个CPU核执行线程的退出操作,可以根据实际需求灵活确定,本申请实施例对此不做限定。一种可选实现方式中,M个CPU核可以基于各CPU核的使用率确定,如可以优先选择CPU的使用率较低的CPU核执行线程的退出操作,从而可以提高线程的退出效率。
在一些实施例中,所述控制所述缓存队列中的线程按照预设速度出队,可以包括:
在第一条件满足的情况下,通过第二内核线程控制所述缓存队列中的线程按照预设速度出队,出队线程均匀分布在所述M个CPU核上;
其中,所述第一条件为以下任一项:
所述缓存队列中的线程数量达到第二阈值;
到达所述第二内核线程的周期唤醒时间。
在本实施例中,电子设备可以创建一个内核线程,即第二内核线程用于管理所述缓存队列的线程出队。
所述第二内核线程可以在第一条件满足时被唤醒,控制所述缓存队列中的线程按照预设速度出队,在第一条件不满足时进入休眠待命状态,从而可以节约CPU资源。
在所述第一条件为所述缓存队列中的线程数量达到第二阈值的情况下,电子设备可以在缓存队列中线程数量较多时唤醒所述第二内核线程,执行缓存队列中线程的退出操作。
另外,电子设备可以配置周期性唤醒所述第二内核线程,这样,在到达所述第二内核线程的周期唤醒时间的情况下,可以唤醒所述第二内核线程,执行缓存队列中线程的退出操作。
所述第二内核线程被唤醒之后,可以执行以下操作:检查缓存队列是否有线程,如果有则进入下一步,否则继续进入休眠待命状态;从缓存队列中取出线程,设置他们的可运行核数;按照预设出队速度唤醒缓存队列中的预设个数线程,避免线程太多对CPU进行无谓的挤兑。
一种可选实现方式中,出队线程可以均匀分布在所述M个CPU核上,即每个CPU核上分布的出队线程数量相等。当然,在其他实施例中,出队线程也可以非均匀分布在所述M个CPU核上,即每个CPU核上分布的出队线程数量可以不相等。
能够理解的,为了避免某个CPU上出现资源挤兑的情况,即使出队线程是非均匀分布在M个CPU核上的,但是每两个CPU核上分布的出队线程数量差距不大,例如,CPU0上分布有4个线程,CPU1上分布有5个线程,CPU2上分布有5个线程。
可见,通过上述方式,通过第二内核线程管理所述缓存队列的线程出队,一方面,可在一定程度上避免线程退出拥堵,另一方面,还有空闲资源让给新应用线程执行,可以提高新应用的启动速度。
需要说明的是,本申请实施例中介绍的多种可选的实施例,在彼此不冲突的情况下可以相互结合实现,也可以单独实现,对此本申请实施例不作限定。
本申请实施例通过均衡错开后台应用多线程退出操作,把所有被杀线程缓存起来,均衡间隔地唤醒执行退出操作,避免拥堵的同时,减少突发的线程数量和CPU资源浪费,进而腾出CPU资源给新应用启动线程。同时创建服务线程专职负责快速回收被杀应用的内存,避免出现需要等最后一个线程退出后才能进行内存回收,导致内存回收不及时的局面。这样,可以快速回收后台应用内存并减少后台应用使用CPU资源,及时回收内存,从而达到优先提供CPU和内存资源给新应用启动。
为了便于理解上述实施例提供的应用退出方法,以下以一个具体的场景实施例对上述应用退出方法进行说明。
原先被杀的应用线程都是突发几百个一起运行,挤兑着仅有的8个核或者更少的核。假设CPU0-3是小核,CPU4-7是大核。一般大核运行更快,但功耗也更大,适合给交互性较强的前台应用使用。如图3a所示,由于系统策略限制,被杀应用1的大多数线程集中挤兑CPU2和CPU3。
本申请实施例通过(先进先出)队列缓存所有被杀的线程,并且通过一个内核线程(也可以为进程)O1/O2来及时回收被杀应用的内存。如图3b所示,缓存的线程排队按照一定时间间隔(可配置)有序在4/8核(可配置)轮流执行,这样就可以避免线程退出挤兑。
这样,管理好这些即将退出的线程后,可以一定程度上避免CPU资源的挤兑发生情况,同时内存也可以通过O1/O2及时回收回来。间隔时间就可以留给新应用的线程使用,如图3b所示。
本申请实施例可以抑制后台应用被杀线程退出操作突发抢占CPU资源,及时回收内存,提高新应用启动速度。如图4所示,具体可以包括以下步骤:
系统初始化时,可以创建1个M管理服务线程,和专门负责回收内存的O1/O2线程。一旦有后台应用被杀,就开始执行以下步骤:
步骤401、被杀线程会立即排队进入缓存队列。
具体实现时,系统策略可以在发现内存不足时,杀后台应用。如果发现缓存队列中线程数量较多,则唤醒M管理服务线程。
步骤402、唤醒O1/O2线程。
具体实现时,在进入缓存队列后,立刻唤醒O1/O2线程执行内存回收。
步骤403、O1/O2执行内存回收。
具体实现时,O1/O2可以强制回收被杀应用的内存,避免因拖到最后一个线程退出才回收内存,导致内存回收不及时的情况。
M管理服务线程负责管理缓存队里中的线程出队。在启动后可以处于休眠待命状态。如果被唤醒,可以执行以下步骤:
步骤404、检查缓存队列是否有线程。
如果有则进入下一步。否则继续进入休眠待命状态。
步骤405、设置线程运行核。
具体实现时,从缓存队列中取出线程,设置退出线程的可运行核数(4-8核)。
步骤406、连续唤醒4-8个线程。
具体实现时,每次只唤醒4-8个线程,避免太多线程造成线程退出挤兑。
步骤407、休眠4/8ms。
具体实现时,唤醒一次后,间隔4/8ms再进行下一轮开始,即重新执行步骤404。
这样,可以把所有被杀的线程均衡分布到CPU核上,避免拥堵的同时还有空闲资源让给新应用线程执行,可以提高新应用的启动速度。
本申请实施例能够抑制后台应用线程退出操作抢占CPU资源,同时也能及时回收内存,从而可以优先提供CPU资源给新应用启动,避免了在复杂场景下大量线程挤兑CPU造成无效的资源浪费的同时,加速了内存回收,提高了新应用的启动速度,改善用户体验。
需要说明的是,本申请实施例提供的应用退出方法,执行主体可以为应用退出装置,或者,该应用退出装置中的用于执行应用退出方法的控制模块。本申请实施例中以应用退出装置执行应用退出方法为例,说明本申请实施例提供的应用退出装置。
参见图5,图5是本申请实施例提供的应用退出装置的结构图。
如图5所示,应用退出装置500包括:
添加模块501,用于在确定关闭第一应用的情况下,将所述第一应用的线程添加至缓存队列中,所述第一应用为后台运行的应用;
控制模块502,用于控制所述缓存队列中的线程按照预设速度出队;
第一执行模块503,用于在中央处理器CPU资源中的第一CPU核执行出队线程的退出操作,所述第一CPU核为所述缓存队列中线程的可用CPU核,所述第一CPU核包括M个CPU核,M为正整数。
在一些实施例中,所述控制模块,具体用于:
周期性地控制所述缓存队列中的线程出队;
其中,每个周期用于控制所述缓存列队中的M个线程出队,所述M个线程与所述M个CPU核一一对应。
在一些实施例中,所述装置还包括:
接收模块,用于接收对第二应用的启动输入;
第一确定模块,用于所述启动输入,在可用内存值小于第一阈值的情况下,确定关闭所述第一应用,所述第一阈值为所述第二应用启动后所需占用的内存值;
所述装置还包括:
第二执行模块,用于在所述缓存队列的线程出队间隔时间,在所述第一CPU核执行所述第二应用的线程的运行操作。
在一些实施例中,所述装置还包括:
第三执行模块,用于通过第一内核线程执行内存回收操作;
其中,所述第一内核线程在目标CPU核执行。
在一些实施例中,所述装置还包括:
第二确定模块,用于根据第一信息,确定M的取值;
其中,所述第一信息包括以下至少一项:CPU资源的使用率、所述缓存队列中线程所属的应用的类型以及所述缓存队列中的线程数。
在一些实施例中,所述控制模块,具体用于:
在第一条件满足的情况下,通过第二内核线程控制所述缓存队列中的线程按照预设速度出队,出队线程均匀分布在所述M个CPU核上;
其中,所述第一条件为以下任一项:
所述缓存队列中的线程数量达到第二阈值;
到达所述第二内核线程的周期唤醒时间。
本申请实施例提供的应用退出装置500能够实现图2的方法实施例中的各个过程,为避免重复,这里不再赘述。
本申请实施例中的应用退出装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(NetworkAttached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的应用退出装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
可选的,如图6所示,本申请实施例还提供一种电子设备600,包括处理器601,存储器602,存储在存储器602上并可在所述处理器601上运行的程序或指令,该程序或指令被处理器601执行时实现上述应用退出方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图7为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备700包括但不限于:射频单元701、网络模块702、音频输出单元703、输入单元704、传感器705、显示单元706、用户输入单元707、接口单元708、存储器709、以及处理器710等部件。
本领域技术人员可以理解,电子设备700还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器170逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图7中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器710,用于:
在确定关闭第一应用的情况下,将所述第一应用的线程添加至缓存队列中,所述第一应用为后台运行的应用;
控制所述缓存队列中的线程按照预设速度出队;
在第一中央处理器CPU核执行出队线程的退出操作,所述第一CPU核为所述缓存队列中线程的可用CPU核,所述第一CPU核包括M个CPU核,M为正整数。
本申请实施例提供的电子设备700能够实现图2的方法实施例中的各个过程,为避免重复,这里不再赘述。
应理解的是,本申请实施例中,输入单元704可以包括图形处理器(GraphicsProcessing Unit,GPU)7041和麦克风7042,图形处理器7041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元706可包括显示面板7061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板7061。用户输入单元707包括触控面板7071以及其他输入设备7072。触控面板7071,也称为触摸屏。触控面板7071可包括触摸检测装置和触摸控制器两个部分。其他输入设备7072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。存储器709可用于存储软件程序以及各种数据,包括但不限于应用和操作系统。处理器710可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器710中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述应用退出方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述应用退出方法实施例的各个过程,且能达到相同的技术效果,为避免重复,不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (10)

1.一种应用退出方法,其特征在于,包括:
在确定关闭第一应用的情况下,将所述第一应用的线程添加至缓存队列中,所述第一应用为后台运行的应用;
控制所述缓存队列中的线程按照预设速度出队;
在第一中央处理器CPU核执行出队线程的退出操作,所述第一中央处理器CPU核为所述缓存队列中线程的可用CPU核,所述第一中央处理器CPU核包括M个CPU核,M为正整数;
所述在确定关闭第一应用的情况下,将第一应用的线程添加至缓存队列中之前,所述方法还包括:
接收对第二应用的启动输入;
响应于所述启动输入,在可用内存值小于第一阈值的情况下,确定关闭所述第一应用,所述第一阈值为所述第二应用启动后所需占用的内存值;
所述在确定关闭第一应用的情况下,将第一应用的线程添加至缓存队列中之后,所述方法还包括:
在所述缓存队列的线程出队间隔时间,在所述第一中央处理器CPU核执行所述第二应用的线程的运行操作。
2.根据权利要求1所述的方法,其特征在于,所述控制所述缓存队列中的线程按照预设速度出队,包括:
周期性地控制所述缓存队列中的线程出队;
其中,每个周期用于控制所述缓存队列中的M个线程出队,所述M个线程与所述M个CPU核一一对应。
3.根据权利要求1所述的方法,其特征在于,所述在确定关闭第一应用的情况下,将第一应用的线程添加至缓存队列中之后,所述方法还包括:
通过第一内核线程执行内存回收操作;
其中,所述第一内核线程在目标CPU核执行。
4.根据权利要求1所述的方法,其特征在于,所述在确定关闭第一应用的情况下,将第一应用的线程添加至缓存队列中之后,所述在第一中央处理器CPU核执行出队线程的退出操作之前,所述方法还包括:
根据第一信息,确定M的取值;
其中,所述第一信息包括以下至少一项:CPU资源的使用率;所述缓存队列中线程所属的应用的类型;所述缓存队列中的线程数。
5.根据权利要求1所述的方法,其特征在于,所述控制所述缓存队列中的线程按照预设速度出队,包括:
在第一条件满足的情况下,通过第二内核线程控制所述缓存队列中的线程按照预设速度出队,出队线程均匀分布在所述M个CPU核上;
其中,所述第一条件为以下任一项:
所述缓存队列中的线程数量达到第二阈值;
到达所述第二内核线程的周期唤醒时间。
6.一种应用退出装置,其特征在于,包括:
添加模块,用于在确定关闭第一应用的情况下,将所述第一应用的线程添加至缓存队列中,所述第一应用为后台运行的应用;
控制模块,用于控制所述缓存队列中的线程按照预设速度出队;
第一执行模块,用于在第一中央处理器CPU核执行出队线程的退出操作,所述第一中央处理器CPU核为所述缓存队列中线程的可用CPU核,所述第一中央处理器CPU核包括M个CPU核,M为正整数;
所述装置还包括:
接收模块,用于接收对第二应用的启动输入;
第一确定模块,用于所述启动输入,在可用内存值小于第一阈值的情况下,确定关闭所述第一应用,所述第一阈值为所述第二应用启动后所需占用的内存值;
所述装置还包括:
第二执行模块,用于在所述缓存队列的线程出队间隔时间,在所述第一中央处理器CPU核执行所述第二应用的线程的运行操作。
7.根据权利要求6所述的装置,其特征在于,所述控制模块,具体用于:
周期性地控制所述缓存队列中的线程出队;
其中,每个周期用于控制所述缓存队列中的M个线程出队,所述M个线程与所述M个CPU核一一对应。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第三执行模块,用于通过第一内核线程执行内存回收操作;
其中,所述第一内核线程在目标CPU核执行。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于根据第一信息,确定M的取值;
其中,所述第一信息包括以下至少一项:CPU资源的使用率、所述缓存队列中线程所属的应用的类型以及所述缓存队列中的线程数。
10.根据权利要求6所述的装置,其特征在于,所述控制模块,具体用于:
在第一条件满足的情况下,通过第二内核线程控制所述缓存队列中的线程按照预设速度出队,出队线程均匀分布在所述M个CPU核上;
其中,所述第一条件为以下任一项:
所述缓存队列中的线程数量达到第二阈值;
到达所述第二内核线程的周期唤醒时间。
CN202210746305.1A 2022-06-29 2022-06-29 应用退出方法和装置 Active CN115033306B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210746305.1A CN115033306B (zh) 2022-06-29 2022-06-29 应用退出方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210746305.1A CN115033306B (zh) 2022-06-29 2022-06-29 应用退出方法和装置

Publications (2)

Publication Number Publication Date
CN115033306A CN115033306A (zh) 2022-09-09
CN115033306B true CN115033306B (zh) 2024-05-24

Family

ID=83127469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210746305.1A Active CN115033306B (zh) 2022-06-29 2022-06-29 应用退出方法和装置

Country Status (1)

Country Link
CN (1) CN115033306B (zh)

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929500A (zh) * 2012-09-27 2013-02-13 东莞宇龙通信科技有限公司 移动终端和应用程序的关闭处理方法
KR20130082719A (ko) * 2011-12-15 2013-07-22 주식회사 코스콤 금융 데이터 조회 시스템 및 방법
CN103714016A (zh) * 2014-01-14 2014-04-09 贝壳网际(北京)安全技术有限公司 缓存的清理方法、装置及客户端
CN103744801A (zh) * 2014-01-24 2014-04-23 深圳市华宝电子科技有限公司 一种实时数据缓存方法及装置
CN106648796A (zh) * 2016-12-29 2017-05-10 宇龙计算机通信科技(深圳)有限公司 一种应用处理方法及装置
CN106790450A (zh) * 2016-12-07 2017-05-31 北京小米移动软件有限公司 缓存处理方法、装置及服务器
CN107025118A (zh) * 2016-02-02 2017-08-08 腾讯科技(深圳)有限公司 结束应用程序的方法及装置
CN107450952A (zh) * 2017-07-31 2017-12-08 广东欧珀移动通信有限公司 应用管控方法、装置、存储介质及电子设备
CN108762836A (zh) * 2018-05-21 2018-11-06 Oppo广东移动通信有限公司 预加载应用的管理方法、装置、存储介质及智能终端
CN109189284A (zh) * 2018-08-02 2019-01-11 珠海格力电器股份有限公司 一种删除后台中应用的方法和设备
CN109992363A (zh) * 2017-12-29 2019-07-09 广东欧珀移动通信有限公司 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN111831434A (zh) * 2020-07-01 2020-10-27 Oppo广东移动通信有限公司 资源分配方法、装置、存储介质及电子设备
CN112463374A (zh) * 2020-11-26 2021-03-09 中国第一汽车股份有限公司 一种内存管理方法、装置、设备及存储介质
CN113946385A (zh) * 2021-10-18 2022-01-18 维沃移动通信有限公司 应用程序的清理方法和应用程序的清理装置
CN113971124A (zh) * 2020-07-24 2022-01-25 腾讯科技(深圳)有限公司 子应用的调试方法、装置、计算机设备和存储介质
CN114510342A (zh) * 2020-11-17 2022-05-17 北京小米移动软件有限公司 缓存处理方法、装置及存储介质

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130082719A (ko) * 2011-12-15 2013-07-22 주식회사 코스콤 금융 데이터 조회 시스템 및 방법
CN102929500A (zh) * 2012-09-27 2013-02-13 东莞宇龙通信科技有限公司 移动终端和应用程序的关闭处理方法
CN103714016A (zh) * 2014-01-14 2014-04-09 贝壳网际(北京)安全技术有限公司 缓存的清理方法、装置及客户端
CN103744801A (zh) * 2014-01-24 2014-04-23 深圳市华宝电子科技有限公司 一种实时数据缓存方法及装置
CN107025118A (zh) * 2016-02-02 2017-08-08 腾讯科技(深圳)有限公司 结束应用程序的方法及装置
CN106790450A (zh) * 2016-12-07 2017-05-31 北京小米移动软件有限公司 缓存处理方法、装置及服务器
CN106648796A (zh) * 2016-12-29 2017-05-10 宇龙计算机通信科技(深圳)有限公司 一种应用处理方法及装置
CN107450952A (zh) * 2017-07-31 2017-12-08 广东欧珀移动通信有限公司 应用管控方法、装置、存储介质及电子设备
CN109992363A (zh) * 2017-12-29 2019-07-09 广东欧珀移动通信有限公司 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN108762836A (zh) * 2018-05-21 2018-11-06 Oppo广东移动通信有限公司 预加载应用的管理方法、装置、存储介质及智能终端
CN109189284A (zh) * 2018-08-02 2019-01-11 珠海格力电器股份有限公司 一种删除后台中应用的方法和设备
CN111831434A (zh) * 2020-07-01 2020-10-27 Oppo广东移动通信有限公司 资源分配方法、装置、存储介质及电子设备
CN113971124A (zh) * 2020-07-24 2022-01-25 腾讯科技(深圳)有限公司 子应用的调试方法、装置、计算机设备和存储介质
CN114510342A (zh) * 2020-11-17 2022-05-17 北京小米移动软件有限公司 缓存处理方法、装置及存储介质
CN112463374A (zh) * 2020-11-26 2021-03-09 中国第一汽车股份有限公司 一种内存管理方法、装置、设备及存储介质
CN113946385A (zh) * 2021-10-18 2022-01-18 维沃移动通信有限公司 应用程序的清理方法和应用程序的清理装置

Also Published As

Publication number Publication date
CN115033306A (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
US10628216B2 (en) I/O request scheduling method and apparatus by adjusting queue depth associated with storage device based on hige or low priority status
KR101864980B1 (ko) 가상 머신 전력 관리
CN105159776B (zh) 进程处理方法及装置
US20110010713A1 (en) Computer system, virtual machine monitor and scheduling method for virtual machine monitor
US9448839B2 (en) Backoff job queue polling mechanism
EP3428801B1 (en) Scheduling method and electronic device
CN109491780B (zh) 多任务调度方法及装置
CN111897637B (zh) 作业调度方法、装置、主机及存储介质
US8132171B2 (en) Method of controlling thread access to a synchronization object
WO2017156676A1 (zh) 一种针对应用的处理方法、装置及智能终端
WO2022242683A1 (zh) 内存回收方法、装置和电子设备
CN115576719A (zh) 一种数据处理方法、装置、智能终端及存储介质
WO2024078494A1 (zh) 线程管理方法、装置、电子设备及存储介质
CN115033306B (zh) 应用退出方法和装置
CN111475299B (zh) 内存分配方法、装置、存储介质及电子设备
WO2023130866A1 (zh) 操作系统的切换方法及装置、电子设备、存储介质
CN115981893A (zh) 消息队列任务处理方法、装置、服务器及存储介质
WO2022095862A1 (zh) 调整线程优先级的方法、终端及计算机可读存储介质
CN110837415A (zh) 一种基于risc-v多核处理器的线程调度方法和装置
TWI489260B (zh) 待機管理方法及其相關待機管理模組及電腦系統
CN111767153B (zh) 资源访问方法、装置及电子设备
US10915268B2 (en) Event based runtime scheduling
CN115964180A (zh) 任务调度方法、装置和电子设备
CN114443510A (zh) 一种内存回收方法及装置
US10158580B2 (en) Utilizing access control data structures for sharing computing resources

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
GR01 Patent grant