CN110362405B - 应用程序的线程分配方法、装置、设备及可读存储介质 - Google Patents

应用程序的线程分配方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN110362405B
CN110362405B CN201910596665.6A CN201910596665A CN110362405B CN 110362405 B CN110362405 B CN 110362405B CN 201910596665 A CN201910596665 A CN 201910596665A CN 110362405 B CN110362405 B CN 110362405B
Authority
CN
China
Prior art keywords
thread
processor
application program
irrelevant
application
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
CN201910596665.6A
Other languages
English (en)
Other versions
CN110362405A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201910596665.6A priority Critical patent/CN110362405B/zh
Publication of CN110362405A publication Critical patent/CN110362405A/zh
Application granted granted Critical
Publication of CN110362405B publication Critical patent/CN110362405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种应用程序的线程分配方法、装置、设备及可读存储介质。所述方法应用于终端设备中,所述终端设备的处理器包括:至少一个第一处理器核及多个第二处理器核,所述方法包括:在应用程序运行于所述终端设备的过程中,根据线程的属性信息,检测所述线程是否为与所述应用程序不相关的线程;以及当所述线程为与所述应用程序不相关的线程时,将所述线程绑定到所述第一处理器核的其中之一上;其中,所述第二处理器核为大核。所述方法可以在提升应用程序性能的前提下,降低终端设备的功耗,提升CPU的执行效能。

Description

应用程序的线程分配方法、装置、设备及可读存储介质
技术领域
本发明涉及计算机应用技术领域,具体而言,涉及一种应用程序的线程分配方法、装置、终端设备及计算机可读存储介质。
背景技术
随着终端设备功能的不断增加,单核处理器已经很难满足其性能要求,越来越多的终端设备采用多核多线程的体系结构,如4核、8核处理器等。目前,很多终端设备都采用的是基于ARM处理器的大小核架构。其中,大核与小核的主频不同,对于同样的任务量,处理器小核的执行时间远高于处理器大核的执行时间。通常,处理器大核用于处理与性能相关的任务,而处理器小核则主要用于处理与功耗相关的任务。
目前,可在终端设备中运行的应用程序越来越多。很多应用程序在运行过程中会产生很多复杂的线程交互执行。而在应用程序运行过程中,终端设备中往往会有几百个线程在同时被执行,例如包括一些与系统相关的、后台执行的线程,这些线程往往会被调度到CPU大核上去抢占应用程序的线程,导致应用程序的卡顿。
以目前越来越得到广泛应用的游戏为例,通常一个游戏在运行时会包含几十个线程在CPU上执行。如果其他线程被调度到CPU大核上去抢占游戏线程的资源,将导致游戏产生卡顿,这样的抢占行为严重影响了游戏的性能,降低了用户的体验。
在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本发明提供一种应用程序的线程分配方法、装置、终端设备及计算机可读存储介质。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的一方面,提供一种应用程序的线程分配方法,应用于终端设备中,所述终端设备的处理器包括:至少一个第一处理器核及多个第二处理器核,所述方法包括:在应用程序运行于所述终端设备的过程中,根据线程的属性信息,检测所述线程是否为与所述应用程序不相关的线程;以及当所述线程为与所述应用程序不相关的线程时,将所述线程绑定到所述第一处理器核的其中之一上;其中,所述第二处理器核为大核。
根据本发明的一实施方式,根据线程的属性信息,检测所述线程是否为与所述应用程序不相关的线程包括:获取所述线程所属进程的名称;根据所述名称,确定所述线程是否属于所述应用程序;以及当所述线程不属于所述应用程序时,确定所述线程与所述应用程序不相关。
根据本发明的一实施方式,当所述线程为与所述应用程序不相关的线程时,将所述线程绑定到所述第一处理器核的其中之一上包括:当所述线程为与所述应用程序不相关的线程时,将所述线程加入至不相关线程组中;以及当所述线程被调度执行时,如果所述进程属于所述不相关线程组,则将所述线程绑定到所述第一处理器核的其中之一上执行。
根据本发明的一实施方式,所述不相关线程组为数组结构。
根据本发明的一实施方式,所述第一处理器包括:小核或大核。
根据本发明的一实施方式,所述应用程序为游戏应用程序,所述多个第二处理器核为所述处理器中编号为最后两个的处理器核。
根据本发明的一实施方式,两个所述第二处理器核上分别执行所述游戏应用程序的逻辑线程和渲染线程。
根据本发明的另一方面,提供一种应用程序的线程分配装置,应用于终端设备中,所述终端设备的处理器包括:至少一个第一处理器核及多个第二处理器核,所述装置包括:线程检测模块,用于在应用程序运行于所述终端设备的过程中,根据线程的属性信息,检测所述线程是否为与所述应用程序不相关的线程;以及线程过滤模块,用于当所述线程检测模块检测所述线程为与所述应用程序不相关的线程时,将所述线程绑定到所述第一处理器核的其中之一上;其中,所述第二处理器核为大核。
根据本发明的再一方面,提供一种终端设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,所述处理器执行所述可执行指令时实现如上述任意一种方法。
根据本发明的再一方面,提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上述任意一种方法。
根据本发明实施方式提供的应用程序的线程分配方法,通过将应用程序运行中与该应用程序不相关的线程进行过滤,将其绑定到非预留的处理器核上执行,可以防止这些不相关线程对应用程序中重要线程的资源抢占,在提升应用程序性能的前提下,降低终端设备的功耗,提升CPU的执行效能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。
图1是根据一示例性实施方式示出的一种应用程序的线程分配方法流程图。
图2是根据一示例性实施方式示出的另一种应用程序的线程分配方法的流程图。
图3是根据一示例性实施方式示出的再一种应用程序的线程分配方法的流程图。
图4是根据一示例性实施方式示出的一种应用程序的线程分配装置的框图。
图5是根据一示例性实施方式示出的一种终端设备的结构示意图。
图6是根据一示例性实施方式示出的一种计算机可读存储介质的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本发明的各方面变得模糊。
此外,在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
图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)。
在游戏运行过程中,可以由游戏平台中的系统层对终端设备中同时运行的线程进行检测,例如可以根据各线程的属性信息(如所属进程)检测该线程是否为与该游戏不相关的线程。
如前述,在游戏的运行过程中,终端设备中往往有几百个线程在运行,其中大部分是与游戏不相关的线程,包括一些与系统相关的、后台执行的线程。对同时运行的线程进行检测,确定这些线程是否与该游戏相关。
在步骤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中步骤S102的进一步说明。
参考图2,步骤S102包括:
在步骤S1022中,获取线程所属进程的名称。
通常在一个进程中可以包含若干个线程。进程作为分配资源的基本单位,线程可以利用进程所拥有的资源,作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统多个程序间并发执行的程度。
首先可以确定该线程所属的进程,进而获取该进程的名称。通常进程的名称与对应的应用程序的名称相关联。当一个应用程序包括多个进程时,多个进程还可能会共享一个包(packet)名称。
在步骤S1024中,根据该名称,确定线程是否属于该应用程序。
如上述,进程的名称与应用程序相关,通常是以应用程序的名称命名其进程的名称,以Chrome浏览器为例,其进程名称为“chrome.exe”。因此获取了该线程所属进程的名称后,可以根据进程的名称,确定该线程是否属于该应用程序。
在步骤S1026中,当该线程不属于该应用程序时,确定该线程与该应用程序不相关。
如果该线程不属于该应用程序,则可以确定该线程与该应用程序不相关。
图3是根据一示例性实施方式示出的再一种应用程序的线程分配方法的流程图。与图1所示的方法10不同的是,图3所示的方法30进一步提供了当线程为与应用程序不相关的线程时,将线程绑定到第一处理器核的其中之一上的实施例,也即图3所示的方法30是对图1中步骤S104的进一步说明。
参考图3,步骤S104包括:
在步骤S1042中,当该线程为与该应用程序不相关的线程时,将该线程加入至不相关线程组中。
可以配置一个不相关线程组,当该线程为与该应用程序不相关的线程时,将该线程加入至不相关线程组。
在实际应用时,该不相关线程组例如可以实现为一个数组结构,或者还可以被实现为链表结构等,本发明不以此为限。
在步骤S1044中,当线程被调度执行时,如果改线程属于不相关线程组,则将线程绑定到第一处理器核的其中之一上执行。
当线程被调度执行时,先在不相关线程组中查询是否包含该线程,如果包含,则将该线程绑定到第一处理器核的其中之一上执行。
根据本发明实施例提供的应用程序的线程分配方法,进一步配置一个不相关线程组,对于不相关的线程,仅需检测一次后将其存储到该不相关线程组中。后续在调度该线程时,查询该不相关线程组,而无需每次线程被调度时,都要执行一次是否相关的检测。
本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图4是根据一示例性实施方式示出的一种应用程序的线程分配装置的框图。该应用程序的线程分配装置可以应用于终端设备中,该终端设备的处理器包括:至少一个第一处理器核及多个第二处理器核,其中,第二处理器核为大核。。
参考图4,装置40包括:线程检测模块402及线程过滤模块404。
其中,线程检测模块402用于在应用程序运行于所述终端设备的过程中,根据线程的属性信息,检测所述线程是否为与所述应用程序不相关的线程。
线程过滤模块404用于当所述线程检测模块检测所述线程为与所述应用程序不相关的线程时,将所述线程绑定到所述第一处理器核的其中之一上。
在一些实施例中,线程检测模块402包括:获取单元、第一确定单元及第二确定单元。其中,获取单元用于获取所述线程所属进程的名称;第一确定单元用于根据所述名称,确定所述线程是否属于所述应用程序;第二确定单元用于当第一确定单元确定所述线程不属于所述应用程序时,确定所述线程与所述应用程序不相关。
在一些实施例中,线程过滤模块404包括:处理单元、查询单元与绑定单元。其中,处理单元用于当线程检测模块402检测所述线程为与所述应用程序不相关的线程时,将所述线程加入至不相关线程组中;查询单元用于当所述线程被调度执行时,查询所述线程是否属于所述不相关线程组;绑定单元用于当查询单元查询到所述线程属于所述不相关线程组时,将所述线程绑定到所述第一处理器核的其中之一上执行。
在一些实施例中,所述不相关线程组为数组结构。
在一些实施例中,所述第一处理器包括:小核或大核。
在一些实施例中,所述应用程序为游戏应用程序,所述多个第二处理器核为所述处理器中编号为最后两个的处理器核。
在一些实施例中,两个所述第二处理器核上分别执行所述游戏应用程序的逻辑线程和渲染线程。
根据本发明实施方式提供的应用程序的线程分配装置,通过将应用程序运行中与该应用程序不相关的线程进行过滤,将其绑定到非预留的处理器核上执行,可以防止这些不相关线程对应用程序中重要线程的资源抢占,在提升应用程序性能的前提下,降低终端设备的功耗,提升CPU的执行效能。
需要注意的是,上述附图中所示的框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图5是根据一示例性实施方式示出的一种终端设备的结构示意图。
参照图5,设备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)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
图6是根据一示例性实施方式示出的一种计算机可读存储介质的示意图。
参考图6所示,描述了根据本发明的实施方式的设置为实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如图1-图3中所示的功能。
以上具体地示出和描述了本发明的示例性实施方式。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

Claims (9)

1.一种应用程序的线程分配方法,应用于终端设备中,其特征在于,所述终端设备的处理器包括:至少一个第一处理器核及多个第二处理器核,所述方法包括:
在应用程序运行于所述终端设备的过程中,查询线程是否属于不相关线程组;
如果所述线程属于所述不相关线程组,则将所述线程绑定到所述第一处理器核的其中之一上执行;
如果所述线程不属于所述不相关线程组,则根据线程的属性信息,检测所述线程是否为与所述应用程序不相关的线程;以及
当所述线程为与所述应用程序不相关的线程时,将所述线程绑定到所述第一处理器核的其中之一上,并将所述线程加入至所述不相关线程组中;
其中,所述第二处理器核为大核。
2.根据权利要求1所述的方法,其特征在于,根据线程的属性信息,检测所述线程是否为与所述应用程序不相关的线程包括:
获取所述线程所属进程的名称;
根据所述名称,确定所述线程是否属于所述应用程序;以及
当所述线程不属于所述应用程序时,确定所述线程与所述应用程序不相关。
3.根据权利要求2所述的方法,其特征在于,所述不相关线程组为数组结构。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一处理器包括:小核或大核。
5.根据权利要求4所述的方法,其特征在于,所述应用程序为游戏应用程序,所述多个第二处理器核为所述处理器中编号为最后两个的处理器核。
6.根据权利要求5所述的方法,其特征在于,两个所述第二处理器核上分别执行所述游戏应用程序的逻辑线程和渲染线程。
7.一种应用程序的线程分配装置,应用于终端设备中,其特征在于,所述终端设备的处理器包括:至少一个第一处理器核及多个第二处理器核,所述装置包括:
线程过滤模块,用于在应用程序运行于所述终端设备的过程中,查询不相关线程组;以及,如果所述线程属于所述不相关线程组,则将所述线程绑定到所述第一处理器核的其中之一上执行;
线程检测模块,用于如果所述线程不属于所述不相关线程组,则根据线程的属性信息,检测所述线程是否为与所述应用程序不相关的线程;以及
所述线程过滤模块,还用于当所述线程检测模块检测所述线程为与所述应用程序不相关的线程时,将所述线程绑定到所述第一处理器核的其中之一上,并将所述线程加入至所述不相关线程组中;
其中,所述第二处理器核为大核。
8.一种终端设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,其特征在于,所述处理器执行所述可执行指令时实现如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机可执行指令,其特征在于,所述可执行指令被处理器执行时实现如权利要求1-6任一项所述的方法。
CN201910596665.6A 2019-07-02 2019-07-02 应用程序的线程分配方法、装置、设备及可读存储介质 Active CN110362405B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910596665.6A CN110362405B (zh) 2019-07-02 2019-07-02 应用程序的线程分配方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910596665.6A CN110362405B (zh) 2019-07-02 2019-07-02 应用程序的线程分配方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN110362405A CN110362405A (zh) 2019-10-22
CN110362405B true CN110362405B (zh) 2023-06-20

Family

ID=68218111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910596665.6A Active CN110362405B (zh) 2019-07-02 2019-07-02 应用程序的线程分配方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN110362405B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112023402B (zh) * 2020-09-02 2021-07-27 腾讯科技(深圳)有限公司 游戏数据处理方法、装置、设备以及介质
CN113359510B (zh) * 2021-06-04 2023-01-31 北京理工大学 北斗卫星导航系统信号模拟器数据实时仿真系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101561769A (zh) * 2009-05-25 2009-10-21 北京航空航天大学 一种基于多核平台虚拟机的进程迁移跟踪方法
CN101996072A (zh) * 2009-08-21 2011-03-30 联想(北京)有限公司 一种操作系统的窗口管理方法及计算机
CN109165091A (zh) * 2018-07-03 2019-01-08 南昌黑鲨科技有限公司 一种优化应用运行质量的方法、移动终端及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11269396B2 (en) * 2018-09-28 2022-03-08 Intel Corporation Per-core operating voltage and/or operating frequency determination based on effective core utilization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101561769A (zh) * 2009-05-25 2009-10-21 北京航空航天大学 一种基于多核平台虚拟机的进程迁移跟踪方法
CN101996072A (zh) * 2009-08-21 2011-03-30 联想(北京)有限公司 一种操作系统的窗口管理方法及计算机
CN109165091A (zh) * 2018-07-03 2019-01-08 南昌黑鲨科技有限公司 一种优化应用运行质量的方法、移动终端及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Migrating a Bare PC Web Server to a Multi-core Architecture;Hojin Chang等;《2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC)》;20160825;第216-221页 *
大规模计算机系统并行仿真技术研究;朱小东;《中国博士学位论文全文数据库 信息科技辑》;20131015(第10期);第I138-118页 *
性能非对称多核处理器上的自适应调度;聂鹏程等;《计算机学报》;20130415(第04期);全文 *

Also Published As

Publication number Publication date
CN110362405A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
EP2945058A1 (en) Processing method and device for application program
KR20140038105A (ko) 휴대 단말기 및 그 제어 방법
KR101744183B1 (ko) 호스트 디바이스의 능력들의 증강
WO2021052415A1 (zh) 资源调度方法及电子设备
WO2021185250A1 (zh) 图像处理方法及装置
WO2022089207A1 (zh) 一种跨设备应用交互方法、电子设备与服务器
CN110362405B (zh) 应用程序的线程分配方法、装置、设备及可读存储介质
WO2020238759A1 (zh) 一种界面显示方法和电子设备
US20220291929A1 (en) Method for multi-core communication, electronic device and storage medium
RU2626089C2 (ru) Способ и устройство для загрузки приложения темы
CN110347508A (zh) 应用程序的线程分配方法、装置、设备及可读存储介质
CN116560771A (zh) 一种应用执行绘制操作的方法及电子设备
CN113747552B (zh) 一种功耗优化方法和电子设备
CN110347486B (zh) 应用程序的线程分配方法、装置、设备及可读存储介质
CN111400002B (zh) 应用进程与处理器核绑定方法及终端
WO2022121445A1 (zh) 添加widget的方法、装置及计算机可读存储介质
CN108958911B (zh) 进程的控制方法及装置
CN116048757A (zh) 任务处理方法、装置、电子设备和存储介质
CN113268325A (zh) 一种调度任务的方法、装置及存储介质
CN113360254A (zh) 任务调度方法及系统
CN109871848B (zh) 一种移动终端的文字识别方法及装置
CN113746998A (zh) 图像处理方法、装置、设备及存储介质
CN113392055B (zh) 文件传输方法、文件传输装置及存储介质
CN116700913B (zh) 嵌入式文件系统的调度方法、设备及存储介质
CN113179362B (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
GR01 Patent grant
GR01 Patent grant