CN110347508A - 应用程序的线程分配方法、装置、设备及可读存储介质 - Google Patents
应用程序的线程分配方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN110347508A CN110347508A CN201910589952.4A CN201910589952A CN110347508A CN 110347508 A CN110347508 A CN 110347508A CN 201910589952 A CN201910589952 A CN 201910589952A CN 110347508 A CN110347508 A CN 110347508A
- Authority
- CN
- China
- Prior art keywords
- thread
- processor
- application program
- threads
- terminal device
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000001514 detection method Methods 0.000 claims description 16
- 238000001914 filtration Methods 0.000 claims description 8
- 238000009877 rendering Methods 0.000 claims description 6
- 230000008901 benefit Effects 0.000 claims description 3
- 230000001737 promoting effect Effects 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种应用程序的线程分配方法、装置、设备及可读存储介质。所述方法应用于终端设备中,所述终端设备的处理器包括:多个第一处理器核及多个第二处理器核,所述方法包括:在应用程序运行于所述终端设备的过程中,检测所述应用程序是否启动了用于执行相同任务的多个线程且所述多个线程的数量超过预设的线程数量阈值;以及当所述多个线程被启动且所述多个线程的数量超过所述线程数量阈值时,将所述多个线程绑定到所述多个第一处理器核上;其中,所述第二处理器核为大核。所述方法可以在提升应用程序性能的前提下,降低终端设备的功耗,提升CPU的执行效能。
Description
技术领域
本发明涉及计算机应用技术领域,具体而言,涉及一种应用程序的线程分配方法、装置、终端设备及计算机可读存储介质。
背景技术
随着终端设备功能的不断增加,单核处理器已经很难满足其性能要求,越来越多的终端设备采用多核多线程的体系结构,如4核、8核处理器等。目前,很多终端设备都采用的是基于ARM处理器的大小核架构。其中,大核与小核的主频不同,对于同样的任务量,处理器小核的执行时间远高于处理器大核的执行时间。通常,处理器大核用于处理与性能相关的任务,而处理器小核则主要用于处理与功耗相关的任务。
目前,可在终端设备中运行的应用程序越来越多。一些应用程序为了提升任务的执行效率,会采用多线程的机制去执行一些突然到来的任务。首先,应用程序会先判断当前终端设备支持的处理器核数,并创建多个线程去执行这些任务。这些被创建的线程通常会抢占其他线程的资源,导致应用程序产生性能损失。
以目前越来越得到广泛应用的游戏为例,游戏在运行过程中,为了提升任务的执行效率,在需要执行一些突发任务时,会启动多个线程来执行这些任务。这些被创建的线程会抢占其他线程的资源,包括大核资源,这样的抢占行为会影响游戏的性能,降低用户体验。
在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本发明提供一种应用程序的线程分配方法、装置、终端设备及计算机可读存储介质。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的一方面,提供一种应用程序的线程分配方法,应用于终端设备中,所述终端设备的处理器包括:多个第一处理器核及多个第二处理器核,所述方法包括:在应用程序运行于所述终端设备的过程中,检测所述应用程序是否启动了用于执行相同任务的多个线程且所述多个线程的数量超过预设的线程数量阈值;以及当所述多个线程被启动且所述多个线程的数量超过所述线程数量阈值时,将所述多个线程绑定到所述多个第一处理器核上;其中,所述第二处理器核为大核。
根据本发明的一实施方式,当所述多个线程被启动且所述多个线程的数量超过所述线程数量阈值时,将所述多个线程绑定到所述多个第一处理器核上包括:当所述多个线程被启动且所述多个线程的数量超过所述线程数量阈值时,检测所述多个线程的负载是否均小于预设的负载阈值;以及当所述多个线程的负载均小于预设的负载阈值时,将所述多个线程绑定到所述多个第一处理器核上。
根据本发明的一实施方式,所述负载为所述线程对所述处理器的利用率。
根据本发明的一实施方式,所述负载为所述线程被执行时对其他正在执行线程的阻断时间。
根据本发明的一实施方式,所述第一处理器包括:小核或大核。
根据本发明的一实施方式,所述应用程序为游戏应用程序,所述多个第二处理器核为所述处理器中编号为最后两个的处理器核。
根据本发明的一实施方式,两个所述第二处理器核上分别执行所述游戏应用程序的逻辑线程和渲染线程。
根据本发明的另一方面,提供一种应用程序的线程分配装置,应用于终端设备中,所述终端设备的处理器包括:多个第一处理器核及多个第二处理器核,所述装置包括:线程检测模块,用于在应用程序运行于所述终端设备的过程中,检测所述应用程序是否启动了用于执行相同任务的多个线程且所述多个线程的数量超过预设的线程数量阈值;以及线程过滤模块,用于当所述线程检测模块检测到所述多个线程被启动且所述多个线程的数量超过所述线程数量阈值时,将所述多个线程绑定到所述多个第一处理器核上;其中,所述第二处理器核为大核。
根据本发明的一方面,提供一种终端设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,所述处理器执行所述可执行指令时实现如上述任意一种方法。
根据本发明的一方面,提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上述任意一种方法。
根据本发明实施方式提供的应用程序的线程分配方法,通过在应用程序执行过程中检测过滤存在用于执行相同任务的、且线程数量超过预设阈值的多个线程,并将这些进程绑定到非预留的处理器核上去执行,可以防止这些并行的多个线程对应用程序中重要线程的资源抢占,进而可以在提升应用程序性能的前提下,降低终端设备的功耗,提升CPU的执行效能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。
图1是根据一示例性实施方式示出的一种应用程序的线程分配方法流程图。
图2是根据一示例性实施方式示出的另一种应用程序的线程分配方法的流程图。
图3是根据一示例性实施方式示出的一种应用程序的线程分配装置的框图。
图4是根据一示例性实施方式示出的一种终端设备的结构示意图。
图5是根据一示例性实施方式示出的一种计算机可读存储介质的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本发明的各方面变得模糊。
此外,在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
图1是根据一示例性实施方式示出的一种应用程序的线程分配方法流程图。该方法可以应用于终端设备中,该终端设备例如可以为终端或通信终端,该终端或通信终端包括但不限于被设置成经由有线线路连接,如经由公共交换电话网络(public switchedtelephone network,PSTN)、数字用户线路(digital subscriber line,DSL)、数字电缆、直接电缆连接,以及/或另一数据连接/网络和/或经由例如,针对蜂窝网络、无线局域网(wireless local area network,WLAN)、诸如手持数字视频广播(digital videobroadcasting handheld,DVB-H)网络的数字电视网络、卫星网络、调幅-调频(amplitudemodulation-frequency modulation,AM-FM)广播发送器,以及/或另一通信终端的无线接口接收/发送通信信号的装置。被设置成通过无线接口通信的通信终端可以被称为“无线通信终端”、“无线终端”以及/或“移动终端”。移动终端的示例包括,但不限于卫星或蜂窝电话;可以组合蜂窝无线电电话与数据处理、传真以及数据通信能力的个人通信系统(personal communication system,PCS)终端;可以包括无线电电话、寻呼机、因特网/内联网接入、Web浏览器、记事簿、日历以及/或全球定位系统(global positioning system,GPS)接收器的个人数字助理(Personal Digital Assistant,PDA);以及常规膝上型和/或掌上型接收器或包括无线电电话收发器的其它电子装置。此外,该终端还可以包括但不限于诸如电子书阅读器、智能穿戴设备及车载设备等电子设备。
该终端设备中配置有多核处理器,该多核处理器包括:多个第一处理器核和多个第二处理器核,其中多个第二处理器均为大核。
参考图1,该方法10包括:
在步骤S102中,在应用程序运行于终端设备的过程中,检测应用程序是否启动了用于执行相同任务的多个线程且多个线程的数量超过预设的线程数量阈值。
不失一般性地,以游戏应用程序为例,一个游戏应用程序在被用户启动而在终端设备中运行时,例如可以定义游戏平台作为该游戏在终端设备上运行的系统。该游戏平台例如可以包括系统层与应用层,其中系统层主要负责提供与终端设备底层相关的系统能力,诸如访问存储器、线程调度等;应用层则主要负责游戏代码的运行。其中,系统层例如可以采用汇编语言编写,应用层例如可以采用JavaScript语言编写,但本发明不以此为限。此外,在系统层与应用层之间还可以设置桥接层,负责连接系统层与应用层。桥阶层可以将系统层的能力封装为统一的、可供应用层直接调用的应用程序编程接口(ApplicationProgramming Interface,API)。
在游戏运行过程中,可以由游戏平台中的系统层对终端设备中启动的用于执行相同任务的多个线程及多个线程的数量进行检测。如上述,游戏在运行时,为了提升任务的执行效率,都会采用多线程的机制去执行一些突发的任务,游戏通常会根据终端设备的处理器核的数量去创建/启动多个线程。具体程序实现时,通常在为相同任务创建/启动多个线程时,这些线程均会与该任务相关联。因此,可以通过多个线程之间的关联性来检测用于执行相同任务的多个线程及这些线程的数量。
该线程数量阈值例如可以根据终端设备的处理器核数量来确定,如对于8核处理器而言,该线程数量阈值例如可以被设置为4-8个等,但本发明不以此为限。
在步骤S104中,当多个线程被启动且多个线程的数量超过线程数量阈值时,将多个线程绑定到多个第一处理器核上。
当这些线程被启动时,将这些线程绑定到终端设备的多个第一处理器上,从而保证这些线程不会被调度到预留的第二处理器核上。其中,预留的多个第二处理器核均为大核,可以仅用于执行该应用程序中的重要进程,从而避免这些被检测到的多个线程对预留大核的资源抢占。
通常每个应用程序的多个线程中,会有一或多个非常重要的线程(如应用程序的主线程),如果能够保证这些重要线程的执行速度,可在一定程度上确保或提升该应用程序的性能。例如,上述预留的第二处理器核即可以用于执行应用程序的这些重要线程。
仍以游戏应用程序为例,游戏中最重要的两个线程为:逻辑线程和渲染线程。其中,逻辑线程主要用于处理网络通信任务、输入输出操作任务等;渲染线程主要用于负责游戏场景在终端设备中的呈现。如果为游戏应用程序预留两个大核,用于执行逻辑线程和渲染线程,可以保证这两个线程的执行速度,从而在一定程度上提升游戏性能及用户体验。因此,将上述检测出的多个线程绑定到第一处理器核上,保证两个第二处理器核用于执行逻辑线程和渲染线程,则可以降低游戏的卡顿次数,提升游戏性能。
在一些实施例中,以8核处理器为例,由于目前的8核处理器中无论是配置6个小核与2个大核,还是配置4个小核与4个大核,通常都是将大核配置为编号靠后的处理器核。也即,如果是6个小核与2个大核,则配置编号为0-5的处理器核为小核,编号为6和7的处理器核为大核;而如果是4个小核与4个大核的配置,则配置编号为0-3的处理器核为小核,编号为4-7的处理器核为大核。无论哪种处理核的配置,如果需要为应用程序预留两个大核,均可以预留编号为6和7的处理器核预留为第二处理器核。而第一处理器核则包括编号为0-5的处理器核,其中编号为0-5的处理器核中即可以包括大核,也可以包括小核。
根据本发明实施方式提供的应用程序的线程分配方法,通过在应用程序执行过程中检测过滤存在用于执行相同任务的、且线程数量超过预设阈值的多个线程,并将这些进程绑定到非预留的处理器核上去执行,可以防止这些并行的多个线程对应用程序中重要线程的资源抢占,进而可以在提升应用程序性能的前提下,降低终端设备的功耗,提升CPU的执行效能。
应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施方式。
图2是根据一示例性实施方式示出的另一种应用程序的线程分配方法的流程图。与图1所示的方法10不同的是,图2所示的方法20进一步提供了将多个线程绑定到多个第一处理器核上的线程的实施例,也即图2所示的方法20是对图1中步骤S104的进一步说明。
参考图2,步骤S104包括:
在步骤S1042中,当多个线程被启动且多个线程的数量超过线程数量阈值时,检测多个线程的负载是否均小于预设的负载阈值。
在决定将多个线程绑定到多个第一处理器核之前,还可以进一步判断这些线程的负载是否均小于预设的负载阈值。也即仅需要将线程数量多且负载较轻的线程绑定到多个第一处理器上。这些轻负载的线程通常重要性较低,但因其数量较多,会抢占重要线程的大核资源,并且还会降低这些大核的处理效率。
在一些实施例中,所述负载例如可以为各线程在执行时对处理器核的利用率。例如在检测前可以先在预设的时间段内,监测并统计这些线程对处理器核的利用率,并在获得统计数据后,再进行与预设负载阈值的判断。处理器核的利用率例如可以为该线程在单位时间内占用/使用处理器核的百分比,如统计单位时间内该线程占用/使用处理器的时间,并将该时间除以单位时间得到该百分比。
在一些实施例中,所述负载还可以为所述线程被执行时对其他正在执行线程的阻断时间。同样地,可以在检测前先在预设的时间段内,监测并统计这些线程在抢占处理器核资源时对其他正在执行线程的阻断时间。通常,对于负载低的线程仅需占用处理器核很短的时间,因此对其他正在执行线程的阻断时间很低。因此,可以通过该阻断时间,来确定这些线程的负载情况。
需要说明的是,无论是使用上述哪种指标来衡量线程的负载,该负载阈值在实际应用中均可以根据实际情况(如终端设备的处理器实际情况)和/或实际需求来设置,本发明不以此为限。
在步骤S1044中,当多个线程的负载均小于预设的负载阈值时,将多个线程绑定到多个第一处理器核上。
仅对于多个线程的负载均小于预设的负载阈值时,才将多个线程绑定到多个第一处理器核上。
根据本实施方式提供的应用程序的线程分配方法,进一步对线程的负载进行判断,仅当这些线程的负载均很轻时,才将这些线程绑定到第一处理器核上,从而解决这些负载轻的非重要线程对大核资源抢占的问题。
在一些实施例中,对于检测出的数量多且负载轻的多个线程,还可以将其加入一预设的线程组中。在实际应用时,该不相关线程组例如可以实现为一个数组结构,或者还可以被实现为链表结构等,本发明不以此为限。当这些线程被调度执行时,如果其属于该预设的线程组,则将这些线程绑定到多个第一处理器核上。
本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图3是根据一示例性实施方式示出的一种应用程序的线程分配装置的框图。该应用程序的线程分配装置可以应用于终端设备中。
参考图3,装置30包括:线程检测模块302及线程过滤模块304。
其中,线程检测模块302用于在应用程序运行于终端设备的过程中,检测应用程序是否启动了用于执行相同任务的多个线程且多个线程的数量超过预设的线程数量阈值。
线程过滤模块304用于当线程检测模块302检测到多个线程被启动且多个线程的数量超过线程数量阈值时,将多个线程绑定到多个第一处理器核上。
在一些实施例中,线程过滤模块304包括:负载检测单元及线程绑定单元。其中,负载检测单元用于当多个线程被启动且多个线程的数量超过线程数量阈值时,检测多个线程的负载是否均小于预设的负载阈值;线程绑定单元用于当负载检测单元检测到多个线程的负载均小于预设的负载阈值时,将多个线程绑定到多个第一处理器核上。
在一些实施例中,所述负载为线程对处理器的利用率。
在一些实施例中,所述负载为线程被执行时对其他正在执行线程的阻断时间。
在一些实施例中,第一处理器包括:小核或大核。
在一些实施例中,应用程序为游戏应用程序,多个第二处理器核为处理器中编号为最后两个的处理器核。
在一些实施例中,两个第二处理器核上分别执行游戏应用程序的逻辑线程和渲染线程。
根据本发明实施方式提供的应用程序的线程分配装置,通过在应用程序执行过程中检测过滤存在用于执行相同任务的、且线程数量超过预设阈值的多个线程,并将这些进程绑定到非预留的处理器核上去执行,可以防止这些并行的多个线程对应用程序中重要线程的资源抢占,进而可以在提升应用程序性能的前提下,降低终端设备的功耗,提升CPU的执行效能。
需要注意的是,上述附图中所示的框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图4是根据一示例性实施方式示出的一种终端设备的结构示意图。
参照图4,设备700可以包括以下一个或多个组件:处理组件702,存储器704,电源电力组件706,多媒体组件708,音频组件710,输入/输出(I/O)的接口712,传感器组件714,以及通信组件716。
处理组件702通常控制设备700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件组件702可以包括一个或多个处理器720来执行指令,以完成上述本发明各实施方式的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理部件组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
存储器704被配置为存储各种类型的数据以支持在设备700上的操作。这些数据的示例包括用于在设备700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件706为设备700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为设备700生成、管理和分配电力相关联的组件。
多媒体组件708包括在所述设备700和用户之间提供的一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件708还可以包括一个前置摄像头和/或后置摄像头。当设备700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括一个麦克风(MIC),当设备700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。
输入/输出(I/O)接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件714包括一个或多个传感器,用于为设备700提供各个方面的状态评估。例如,传感器组件714可以检测到设备700的打开/关闭状态,组件的相对定位,例如所述组件为设备700的显示器和小键盘,传感器组件714还可以检测设备700或设备700一个组件的位置改变,用户与设备700接触的存在或不存在,设备700方位或加速/减速和设备700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件716被配置为便于设备700和其他设备之间有线或无线方式的通信。设备700可以接入基于通信标准的无线网络,如WiFi、2G、3G、4G或5G,或它们的组合。在一个示例性实施例中,通信部件组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件组件716还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,设备700可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
图5是根据一示例性实施方式示出的一种计算机可读存储介质的示意图。
参考图5所示,描述了根据本发明的实施方式的设置为实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如图1-图2中所示的功能。
以上具体地示出和描述了本发明的示例性实施方式。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (10)
1.一种应用程序的线程分配方法,应用于终端设备中,其特征在于,所述终端设备的处理器包括:多个第一处理器核及多个第二处理器核,所述方法包括:
在应用程序运行于所述终端设备的过程中,检测所述应用程序是否启动了用于执行相同任务的多个线程且所述多个线程的数量超过预设的线程数量阈值;以及
当所述多个线程被启动且所述多个线程的数量超过所述线程数量阈值时,将所述多个线程绑定到所述多个第一处理器核上;
其中,所述第二处理器核为大核。
2.根据权利要求2所述的方法,其特征在于,当所述多个线程被启动且所述多个线程的数量超过所述线程数量阈值时,将所述多个线程绑定到所述多个第一处理器核上包括:
当所述多个线程被启动且所述多个线程的数量超过所述线程数量阈值时,检测所述多个线程的负载是否均小于预设的负载阈值;以及
当所述多个线程的负载均小于所述负载阈值时,将所述多个线程绑定到所述多个第一处理器核上。
3.根据权利要求3所述的的方法,其特征在于,所述负载为所述线程对所述处理器的利用率。
4.根据权利要求3所述的方法,其特征在于,所述负载为所述线程被执行时对其他正在执行线程的阻断时间。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述第一处理器包括:小核或大核。
6.根据权利要求5所述的方法,其特征在于,所述应用程序为游戏应用程序,所述多个第二处理器核为所述处理器中编号为最后两个的处理器核。
7.根据权利要求6所述的方法,其特征在于,两个所述第二处理器核上分别执行所述游戏应用程序的逻辑线程和渲染线程。
8.一种应用程序的线程分配装置,应用于终端设备中,其特征在于,所述终端设备的处理器包括:多个第一处理器核及多个第二处理器核,所述装置包括:
线程检测模块,用于在应用程序运行于所述终端设备的过程中,检测所述应用程序是否启动了用于执行相同任务的多个线程且所述多个线程的数量超过预设的线程数量阈值;以及
线程过滤模块,用于当所述线程检测模块检测到所述多个线程被启动且所述多个线程的数量超过所述线程数量阈值时,将所述多个线程绑定到所述多个第一处理器核上;
其中,所述第二处理器核为大核。
9.一种终端设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,其特征在于,所述处理器执行所述可执行指令时实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机可执行指令,其特征在于,所述可执行指令被处理器执行时实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910589952.4A CN110347508A (zh) | 2019-07-02 | 2019-07-02 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910589952.4A CN110347508A (zh) | 2019-07-02 | 2019-07-02 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110347508A true CN110347508A (zh) | 2019-10-18 |
Family
ID=68178156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910589952.4A Pending CN110347508A (zh) | 2019-07-02 | 2019-07-02 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347508A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928687A (zh) * | 2019-11-25 | 2020-03-27 | 新华三技术有限公司 | Cpu资源分配方法及测试设备 |
CN112799848A (zh) * | 2021-02-10 | 2021-05-14 | 联想(北京)有限公司 | 一种控制方法及装置 |
CN112835720A (zh) * | 2021-02-26 | 2021-05-25 | 杭州迪普科技股份有限公司 | 一种arp老化线程管理方法、装置及电子设备 |
CN113132263A (zh) * | 2020-01-15 | 2021-07-16 | 北京小米移动软件有限公司 | 内核处理器调度方法、内核处理器调度装置及存储介质 |
WO2024179250A1 (zh) * | 2023-02-28 | 2024-09-06 | 华为技术有限公司 | 应用管理的方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020078125A1 (en) * | 2000-11-28 | 2002-06-20 | Katsumi Ichinose | Information processing method and recording medium |
CN101076770A (zh) * | 2004-09-28 | 2007-11-21 | 英特尔公司 | 根据可用并行数目改变每条指令能量的方法和设备 |
US20140253567A1 (en) * | 2011-11-28 | 2014-09-11 | Simon Moy | Method for hiding texture latency and managing registers on a processor |
CN105144082A (zh) * | 2012-12-28 | 2015-12-09 | 英特尔公司 | 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择 |
CN106980492A (zh) * | 2016-01-15 | 2017-07-25 | 英特尔公司 | 用于确定处理器核上的工作布置的系统、方法和设备 |
CN109906421A (zh) * | 2016-11-04 | 2019-06-18 | 微软技术许可有限责任公司 | 基于线程重要性的处理器核划分 |
CN109947569A (zh) * | 2019-03-15 | 2019-06-28 | Oppo广东移动通信有限公司 | 绑定核心的方法、装置、终端及存储介质 |
-
2019
- 2019-07-02 CN CN201910589952.4A patent/CN110347508A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020078125A1 (en) * | 2000-11-28 | 2002-06-20 | Katsumi Ichinose | Information processing method and recording medium |
CN101076770A (zh) * | 2004-09-28 | 2007-11-21 | 英特尔公司 | 根据可用并行数目改变每条指令能量的方法和设备 |
US20140253567A1 (en) * | 2011-11-28 | 2014-09-11 | Simon Moy | Method for hiding texture latency and managing registers on a processor |
CN105144082A (zh) * | 2012-12-28 | 2015-12-09 | 英特尔公司 | 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择 |
CN106980492A (zh) * | 2016-01-15 | 2017-07-25 | 英特尔公司 | 用于确定处理器核上的工作布置的系统、方法和设备 |
CN109906421A (zh) * | 2016-11-04 | 2019-06-18 | 微软技术许可有限责任公司 | 基于线程重要性的处理器核划分 |
CN109947569A (zh) * | 2019-03-15 | 2019-06-28 | Oppo广东移动通信有限公司 | 绑定核心的方法、装置、终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
郑玉虎等: "基于双核处理器平台的数控系统软件架构设计", 《组合机床与自动化加工技术》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928687A (zh) * | 2019-11-25 | 2020-03-27 | 新华三技术有限公司 | Cpu资源分配方法及测试设备 |
CN110928687B (zh) * | 2019-11-25 | 2024-02-27 | 新华三技术有限公司 | Cpu资源分配方法及测试设备 |
CN113132263A (zh) * | 2020-01-15 | 2021-07-16 | 北京小米移动软件有限公司 | 内核处理器调度方法、内核处理器调度装置及存储介质 |
CN113132263B (zh) * | 2020-01-15 | 2024-02-13 | 北京小米移动软件有限公司 | 内核处理器调度方法、内核处理器调度装置及存储介质 |
CN112799848A (zh) * | 2021-02-10 | 2021-05-14 | 联想(北京)有限公司 | 一种控制方法及装置 |
CN112835720A (zh) * | 2021-02-26 | 2021-05-25 | 杭州迪普科技股份有限公司 | 一种arp老化线程管理方法、装置及电子设备 |
WO2024179250A1 (zh) * | 2023-02-28 | 2024-09-06 | 华为技术有限公司 | 应用管理的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347508A (zh) | 应用程序的线程分配方法、装置、设备及可读存储介质 | |
US20220224665A1 (en) | Notification Message Preview Method and Electronic Device | |
WO2021213164A1 (zh) | 应用界面交互方法、电子设备和计算机可读存储介质 | |
WO2021017901A1 (zh) | 一种屏幕显示方法及电子设备 | |
WO2021052415A1 (zh) | 资源调度方法及电子设备 | |
CN110134521B (zh) | 资源分配的方法、装置、资源管理器及存储介质 | |
CN113553130B (zh) | 应用执行绘制操作的方法及电子设备 | |
WO2020238759A1 (zh) | 一种界面显示方法和电子设备 | |
WO2022037726A1 (zh) | 分屏显示方法和电子设备 | |
WO2022262434A1 (zh) | 一种功耗优化方法和电子设备 | |
WO2022078105A1 (zh) | 内存管理方法、电子设备以及计算机可读存储介质 | |
WO2021082815A1 (zh) | 一种显示要素的显示方法和电子设备 | |
JP2022501739A (ja) | スタイラスペン検出方法、システムおよび関連装置 | |
WO2022161119A1 (zh) | 一种显示方法及电子设备 | |
CN110673944B (zh) | 执行任务的方法和装置 | |
CN110300189A (zh) | 一种资源下载方法、装置及电子设备 | |
WO2022022674A1 (zh) | 应用图标布局方法及相关装置 | |
CN110347486A (zh) | 应用程序的线程分配方法、装置、设备及可读存储介质 | |
CN110362405B (zh) | 应用程序的线程分配方法、装置、设备及可读存储介质 | |
CN116700913B (zh) | 嵌入式文件系统的调度方法、设备及存储介质 | |
WO2022037408A1 (zh) | 一种显示方法及电子设备 | |
WO2021129453A1 (zh) | 一种截屏方法及相关设备 | |
CN113132263B (zh) | 内核处理器调度方法、内核处理器调度装置及存储介质 | |
WO2024032430A1 (zh) | 管理内存的方法和电子设备 | |
WO2024179161A1 (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: 20191018 |