本申请涉及计算机,尤其涉及一种线程控制方法和装置。
背景技术:
1、通过超线程技术可以将处理器的一个物理核模拟为两个逻辑核,使得一个物理核上两个逻辑核均能够处理线程,从而有效利用了处理器核的闲余计算力,提高了处理器的性能。
2、在电子设备上配置开启超线程功能之后,电子设备会控制处理器中所有物理核启动超线程,但是,很多情况下物理核并不适合启动超线程,导致超线程控制不合理。
技术实现思路
1、本申请提供了一种线程控制方法和装置。
2、一方面,本申请提供了一种线程控制方法,包括:
3、确定应用程序中待运行的进程的第一数量;
4、基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,控制处理器中任一物理核的超线程状态,所述物理核的超线程启动状态用于表征该物理核是否已启动超线程。
5、在一种可能的实现方式中,基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,控制处理器中任一物理核的超线程状态,包括:
6、如果所述第一数量不为零,基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,确定处理器中需要启动超线程的第一物理核;
7、在所述第一物理核中启动超线程,以使得所述第一物理核通过启动的逻辑核运行所述进程。
8、在又一种可能的实现方式中,所述基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,确定处理器中需要启动超线程的第一物理核,包括:
9、以在物理核启动的逻辑核上运行所述第一数量个进程为进程运行条件,结合所述处理器中各物理核的超线程启动状态和进程运行状态,确定满足所述进程运行条件所需的第一物理核,所述第一物理核为所述处理器中需要启动超线程的物理核。
10、在又一种可能的实现方式中,所述基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,确定处理器中需要启动超线程的第一物理核,包括:
11、如果处理器中未启动超线程且处于空闲状态的空闲物理核的第二数量小于所述第一数量,基于所述第一数量,确定所述处理器中需要启动超线程的第一物理核;
12、如果处理器中未启动超线程且处于空闲状态的空闲物理核的第二数量不小于所述第一数量,将所述应用程序中待运行的各进程分别分配给不同的所述空闲物理核。
13、在又一种可能的实现方式中,在确定所述处理器中需要启动超线程的第一物理核之前,还包括:
14、确定所述应用程序的资源需求类型,所述资源需求类型属于第一资源需求类型和第二资源需求类型中的一种;
15、所述基于所述第一数量,确定所述处理器中需要启动超线程的第一物理核,包括:
16、如果所述应用程序的资源需求类型为第一资源需求类型,基于所述第一数量和所述第二数量,确定所述处理器中需要启动超线程的第一物理核;
17、如果所述应用程序的资源需求类型为第二资源需求类型,基于所述第一数量,确定所述处理器中需要启动超线程的第一物理核。
18、在又一种可能的实现方式中,所述如果所述应用程序的资源需求类型为第一资源需求类型,基于所述第一数量和所述第二数量,确定所述处理器中需要启动超线程的第一物理核,包括:
19、如果所述应用程序的资源需求类型为第一资源需求类型,将所述应用程序中第二数量个进程分别分配给第二数量个空闲物理核;
20、基于所述第一数量与所述第二数量的差值,确定处理器中需要启动超线程的至少一个第一物理核。
21、在又一种可能的实现方式中,所述基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,确定处理器中需要启动超线程的第一物理核,包括:
22、基于所述第一数量以及处理器中各物理核的超线程启动状态、进程运行状态和物理核的性能特征,确定处理器中需要启动超线程的第一物理核。
23、在又一种可能的实现方式中,所述基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,控制处理器中任一物理核的超线程状态,包括:
24、如果所述第一数量为零,基于所述处理器中各物理核的超线程启动状态和进程运行情况,确定处理器中待结束超线程的第二物理核;
25、结束所述第二物理核的超线程。
26、在又一种可能的实现方式中,所述基于所述处理器中各物理核的超线程启动状态和进程运行情况,确定处理器中待结束超线程的第二物理核,包括:
27、确定所述处理器中已启动超线程且通过超线程启动的各逻辑核上均未运行有进程的第二物理核;
28、或,
29、确定处理器中已启动超线程且存在处于空闲状态的逻辑核的至少一个候选物理核,基于各候选物理核中处于空闲状态的逻辑核的数量,从至少一个候选物理核中确定待结束超线程的第二物理核。
30、又一方面,本申请提供了一种线程控制装置,包括:
31、进程数量确定单元,用于确定应用程序中待运行的进程的第一数量;
32、超线程控制单元,用于基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,控制处理器中任一物理核的超线程状态,所述物理核的超线程启动状态用于表征该物理核是否已启动超线程。
1.一种线程控制方法,包括:
2.根据权利要求1所述的方法,基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,控制处理器中任一物理核的超线程状态,包括:
3.权利要求2所述的方法,所述基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,确定处理器中需要启动超线程的第一物理核,包括:
4.根据权利要求2所述的方法,所述基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,确定处理器中需要启动超线程的第一物理核,包括:
5.根据权利要求4所述的方法,在确定所述处理器中需要启动超线程的第一物理核之前,还包括:
6.根据权利要求5所述的方法,所述如果所述应用程序的资源需求类型为第一资源需求类型,基于所述第一数量和所述第二数量,确定所述处理器中需要启动超线程的第一物理核,包括:
7.根据权利要求2所述的方法,所述基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,确定处理器中需要启动超线程的第一物理核,包括:
8.根据权利要求1所述的方法,所述基于所述第一数量以及处理器中各物理核的超线程启动状态和进程运行情况,控制处理器中任一物理核的超线程状态,包括:
9.根据权利要求8所述的方法,所述基于所述处理器中各物理核的超线程启动状态和进程运行情况,确定处理器中待结束超线程的第二物理核,包括:
10.一种线程控制装置,包括: