System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 线程调度方法、电子设备及计算机可读存储介质技术_技高网

线程调度方法、电子设备及计算机可读存储介质技术

技术编号:40676179 阅读:3 留言:0更新日期:2024-03-18 19:14
本申请实施例提供一种线程调度方法、电子设备及计算机可读存储介质,所述方法包括:在电子设备前台运行的第一应用程序为预设类型的应用程序的情形下,确定需要进行调度的目标线程,及获取目标线程的线程信息;获取目标线程的调度策略,目标线程的调度策略基于第一应用程序的历史设备负载确定;基于调度策略及线程信息对目标线程进行调度,调度包括设置目标线程的线程属性。利用上述方法,在确定前台运行的应用程序为预设类型的应用程序的情形下,基于应用程序在历次前台运行时的设备负载确定线程调度策略,实现基于线程调度触发时的设备实际可能处于的运行状态进行调度决策,线程调度准确性高,可有效提升用户使用应用程序的体验。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种线程调度方法、电子设备及计算机可读存储介质


技术介绍

1、线程调度作为操作系统的基本能力,影响了终端设备的性能及功耗表现。相关的线程调度方案一般涉及应用线程的调度,调度策略一般是预先定义的,在用户使用场景日益复杂的高负载场景下,终端设备在运行资源需求高的应用程序时的可用资源变化不定,例如,中央处理单元(central processing unit,cpu)可用资源、内存可用资源变化不定,采用一成不变的线程调度策略会导致性能不足的问题。


技术实现思路

1、鉴于以上内容,有必要提供一种线程调度方法、电子设备及计算机可读存储介质,基于应用程序在历次前台运行时的设备负载动态设定线程调度策略,改善设备运行资源需求高的应用程序时出现性能不足的问题。

2、第一方面,本申请提供一种线程调度方法,应用于电子设备,方法包括:在电子设备前台运行的第一应用程序为预设类型的应用程序的情形下,确定需要进行调度的目标线程,及获取所述目标线程的线程信息;获取目标线程的调度策略,目标线程的调度策略基于第一应用程序的历史设备负载确定;基于调度策略及线程信息对目标线程进行调度,调度包括设置目标线程的线程属性。采用上述技术方案,在前台运行的应用程序为预设类型的应用程序时触发线程调度,例如,当前台运行的应用程序属于场景白名单中的场景(场景白名单中的各个场景可以分别对应一种类型的应用,例如场景白名单中的游戏场景,即应用为游戏类应用,场景白名单中的视频播放场景,即应用为视频播放类应用)时,触发线程调度,线程调度可以是指修改目标线程的线程属性,线程属性可以包括亲和性和/或优先级,通过修改目标线程的优先级,可使得目标线程(例如属于前台运行的应用程序的线程)获得更多的cpu时间片,通过修改目标线程的亲和性,可以将目标线程指定在一些cpu或者核心上运行(例如将一些内核线程、操作系统原生线程指定到小核上运行,将属于前台运行的应用程序的某些线程指定到大核上运行),基于应用程序的历史设备负载可预估本次线程调度触发时的设备实际可能处于的运行状态,应用程序的历史设备负载可以是指应用程序在历次前台运行时的设备负载或者应用程序在历次运行(包括前台运行与后台运行)时的设备负载,再基于设备本次线程调度可能处于的运行状态设定线程调度策略,实现动态的线程调度策略设定,线程调度准确性高,可有效提升用户使用应用程序的体验,且可降低设备功耗。

3、在一种可能的实现方式中,在电子设备前台运行的第一应用程序为预设类型的应用程序的情形下,确定需要进行调度的目标线程,包括:在电子设备前台运行的第一应用程序为预设类型的应用程序的情形下,获取电子设备的可用资源,可用资源包括cpu的剩余可用资源和/或内存的剩余可用资源;在可用资源符合预设条件的情形下,确定需要进行调度的目标线程。采用上述技术方案,通过设定在检测到电子设备前台运行的应用程序为预设类型的应用程序(即为预设场景),且电子设备的可用资源符合预设条件时,触发线程调度流程,预设条件可以根据实际需求进行设定,例如预设条件可以为电子设备的cpu的剩余可用资源和/或内存的剩余可用资源低于阈值。即在检测到电子设备前台运行的应用程序属于场景白名单中的某个场景,且电子设备当前资源紧张时,触发线程调度流程,以为前台运行的应用程序提供较佳的运行环境,若电子设备的可用资源不符合预设条件,认为电子设备当前资源较充裕,不触发线程调度流程。

4、在一种可能的实现方式中,线程调度方法还包括:基于获取的进程控制块(process control block,pcb)中的信息,将所述目标线程的标识及调度前的线程属性维护至线程调度数据库;获取目标线程调度后的线程属性,及将目标线程调度后的线程属性维护至线程调度数据库,目标线程调度后的线程属性基于第一应用程序的历史设备负载确定。采用上述技术方案,进程控制块记录有进程的管理、控制等信息,通过从操作系统的内核中获取当前运行的各个进程的进程控制块,再基于pcb中的信息,可获取各个进程下的线程的信息,获取到的线程可与线程白名单(线程白名单可以保存有场景白名单中的所有场景需要进行调度的线程的线程名称)进行比对,进而可将正在运行且属于线程白名单的线程的标识及调度前的线程属性维护至线程调度数据库,线程调度数据库可保存有场景白名单中的所有场景需要调度的线程的线程信息(线程名称、唯一身份标识、调度前的线程属性及调度后的线程属性等),便于后续可以基于线程调度数据库获取当前场景需要调度的目标线程的线程信息以及在特定情形下进行线程属性的调度前或调度后的恢复。

5、在一种可能的实现方式中,获取目标线程的线程信息,包括:从线程调度数据库中获取目标线程的线程信息。采用上述技术方案,基于线程调度数据库来获取需要进行调度的目标线程的线程信息,相比现有通过遍历文件节点的方式获取需要进行调度的线程的线程信息,所需的时间更短,线程信息获取过程占用的资源更低,进而执行线程调度的资源消耗大幅降低,且线程调度执行效率高。

6、在一种可能的实现方式中,基于调度策略及线程信息对目标线程进行调度之后,还包括:在检测到目标线程异常销毁的情形下,基于线程调度数据库将重新创建的目标线程恢复至调度后的线程属性;或在检测到在电子设备前台运行的应用程序由第一应用程序变更为第二应用程序,且第二应用程序不是预设类型的应用程序的情形下,基于线程调度数据库将目标线程恢复至调度前的线程属性。采用上述技术方案,通过构建线程逃生机制,在设备场景未发生变化,且被调度的线程出现异常销毁时,可基于线程调度数据库将重新创建的线程恢复至调度后的线程属性,以为前台运行的应用程序提供较佳的运行环境,或者在设备场景发生变化时,可基于线程调度数据库将调度的线程恢复至调度前的线程属性。

7、在一种可能的实现方式中,基于调度策略及线程信息对目标线程进行调度之后,还包括:在检测到电子设备处于灭屏状态的情形下,基于线程调度数据库将目标线程恢复至调度前的线程属性;在检测到电子设备由灭屏状态转换为亮屏状态,或由灭屏状态转换为显示第一应用程序的界面的情形下,基于线程调度数据库将目标线程恢复至调度后的线程属性。采用上述技术方案,在设备灭屏时,表征用户暂不使用应用程序,无需再对目标线程进行调度,可基于线程调度数据库将调度的线程恢复至调度前的线程属性,待亮屏之后或解锁之后再对目标线程进行调度,例如可基于线程调度数据库将调度的线程恢复至调度后的线程属性。

8、在一种可能的实现方式中,确定需要进行调度的目标线程,包括:识别第一应用程序所属的场景;基于第一应用程序所属的场景确定需要进行调度的目标线程,电子设备存储有与多个场景分别对应的调度线程。采用上述技术方案,电子设备可预先存储有与各个场景分别对应的调度线程的表,该表可存储有预先设定的各个场景需要调度的线程的标识,在确定前台运行的第一应用程序为预设类型的应用程序之后,通过识别第一应用程序所属的场景,进而可基于第一应用程序所属的场景查找该表,可得到需要进行调度的目标线程。

9本文档来自技高网...

【技术保护点】

1.一种线程调度方法,应用于电子设备,其特征在于,所述方法包括:

2.如权利要求1所述的线程调度方法,其特征在于,所述在所述电子设备前台运行的第一应用程序为预设类型的应用程序的情形下,确定需要进行调度的目标线程,包括:

3.如权利要求1或2所述的线程调度方法,其特征在于,所述方法还包括:

4.如权利要求3所述的线程调度方法,其特征在于,所述获取所述目标线程的线程信息,包括:

5.如权利要求4所述的线程调度方法,其特征在于,所述基于所述调度策略及所述线程信息对所述目标线程进行调度之后,还包括:

6.如权利要求4所述的线程调度方法,其特征在于,所述基于所述调度策略及所述线程信息对所述目标线程进行调度之后,还包括:

7.如权利要求1至6中任一项所述的线程调度方法,其特征在于,所述确定需要进行调度的目标线程,包括:

8.如权利要求1至7中任一项所述的线程调度方法,其特征在于,所述方法还包括:

9.如权利要求8所述的线程调度方法,其特征在于,所述电子设备包括内核节点,所述内核节点包括用于存储所述目标线程的调度策略的数据结构,所述获取所述目标线程的调度策略,包括:

10.如权利要求9所述的线程调度方法,其特征在于,所述电子设备的CPU包括多个核心,所述线程属性包括亲和性,所述基于所述预测设备负载确定所述目标线程的调度策略,包括:

11.如权利要求9所述的线程调度方法,其特征在于,所述线程属性包括优先级,所述基于所述预测设备负载确定所述目标线程的调度策略,包括:

12.如权利要求1至9中任一项所述的线程调度方法,其特征在于,所述线程属性包括亲和性和/或优先级。

13.一种电子设备,其特征在于,所述电子设备包括存储器和处理器:

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序指令,当所述程序指令在电子设备上运行时,使得所述电子设备执行如权利要求1至12中任一项所述的线程调度方法。

...

【技术特征摘要】

1.一种线程调度方法,应用于电子设备,其特征在于,所述方法包括:

2.如权利要求1所述的线程调度方法,其特征在于,所述在所述电子设备前台运行的第一应用程序为预设类型的应用程序的情形下,确定需要进行调度的目标线程,包括:

3.如权利要求1或2所述的线程调度方法,其特征在于,所述方法还包括:

4.如权利要求3所述的线程调度方法,其特征在于,所述获取所述目标线程的线程信息,包括:

5.如权利要求4所述的线程调度方法,其特征在于,所述基于所述调度策略及所述线程信息对所述目标线程进行调度之后,还包括:

6.如权利要求4所述的线程调度方法,其特征在于,所述基于所述调度策略及所述线程信息对所述目标线程进行调度之后,还包括:

7.如权利要求1至6中任一项所述的线程调度方法,其特征在于,所述确定需要进行调度的目标线程,包括:

8.如权利要求1至7中任一项所述的线程调度方法,其特征在于,所述方法还包括:

...

【专利技术属性】
技术研发人员:刘伟刚姜仕双
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1