System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 线程执行方法、装置、电子设备及介质制造方法及图纸_技高网

线程执行方法、装置、电子设备及介质制造方法及图纸

技术编号:41505556 阅读:14 留言:0更新日期:2024-05-30 14:46
本公开涉及一种线程执行方法、装置、电子设备及介质,具体涉及终端技术领域,包括:当前持有关键锁的线程为目标线程,获取目标线程所处的进程作为目标进程,获取目标线程所持的关键锁的类型,以及获取目标线程的优先级作为当前优先级,若目标进程为预设进程,关键锁的类型为预设类型,以及当前优先级小于预设优先级,则将目标线程的优先级提升至预设优先级,再按照较高的预设优先级执行目标线程,使得目标线程可以快速被调度,减少了目标线程的等待时间,减少了系统卡顿。

【技术实现步骤摘要】

本公开涉及终端,尤其涉及一种线程执行方法、装置、电子设备及介质


技术介绍

1、安卓(android)操作系统通常应用在手机、平板电脑等电子设备中,用于为用户使用电子设备提供统一的接口和友好的交互界面,可以支持多线程运行。目前,在安卓操作系统中,共享资源可以被多个有访问需求的线程访问,为了避免多线程同时访问共享资源,通过锁实现对共享资源的保护,多个线程之间相互竞争锁。只有持锁的线程可以访问该共享资源,未持锁的线程需要继续等锁。如果持锁的线程优先级较低,在较长时间得不到调度,导致等锁线程一直被阻塞,因而导致系统卡顿。


技术实现思路

1、为克服相关技术中存在的问题,本公开提供一种线程执行方法、装置、电子设备及介质。

2、根据本公开实施例的第一方面,提供一种线程执行方法,所述线程执行包括:获取目标线程,其中,所述目标线程为当前持有关键锁的线程,所述目标线程所处的进程为目标进程;获取所述目标线程持有所述关键锁的次数和所述目标线程当前优先级;响应于所述目标进程为预设进程,所述关键锁的类型为预设类型,确定持有所述关键锁的次数是否小于预设阈值,以及确定所述当前优先级是否小于预设优先级,响应于所述关键锁得次数小于预设阈值,以及确定所述当前优先级小于预设优先级,将所述目标线程的优先级提升至所述预设优先级;按照所述预设优先级执行所述目标线程。

3、可选地,所述按照所述预设优先级执行所述目标线程之后,所述方法还包括:将所述目标线程的优先级恢复为所述当前优先级。

4、可选地,所述将所述目标线程的优先级恢复为所述当前优先级,包括:获取所述目标线程执行的函数;根据所述函数,将所述目标线程的优先级恢复为所述当前优先级,并控制所述目标线程释放所述关键锁。

5、可选地,所述根据所述函数,将所述目标线程的优先级恢复为所述当前优先级,包括:若所述函数为wait函数,将所述目标线程的优先级恢复为所述当前优先级。

6、可选地,所述获取所述目标线程执行的函数之前,所述方法还包括:通过计数器计量所述目标线程持有所述关键锁的次数作为目标次数;所述根据所述函数,将所述目标线程的优先级恢复为所述当前优先级,包括:若所述函数为unlock函数,在所述目标线程执行的所述unlock函数目标次数后,将所述目标线程的优先级恢复为所述当前优先级。

7、可选地,所述将所述目标线程的优先级恢复为所述当前优先级之前,所述方法还包括:保存所述当前优先级。

8、可选地,所述预设进程为system_server进程。

9、根据本公开实施例的第二方面,提供一种线程执行装置,第一获取模块,用于获取目标线程,其中,所述目标线程为当前持有关键锁的线程,所述目标线程所处的进程为目标进程;第二获取模块,用于获取所述目标线程持有所述关键锁的次数和所述目标线程当前优先级;第一响应模块,用于响应于所述目标进程为预设进程,所述关键锁的类型为预设类型,确定持有所述关键锁的次数是否小于预设阈值,以及确定所述当前优先级是否小于预设优先级;第二响应模块,用于响应于所述关键锁得次数小于预设阈值,以及确定所述当前优先级小于预设优先级,将所述目标线程的优先级提升至所述预设优先级;按照所述预设优先级执行所述目标线程。

10、根据本公开实施例的第三方面,提供一种电子设备,所述电子设备包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:执行该指令时实现第一方面所述方法的步骤。

11、根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现第一方面所述方法的步骤。

12、本公开提供一种线程执行方法、装置、电子设备及介质,当前持有关键锁的线程为目标线程,获取目标线程所处的进程作为目标进程,获取目标线程所持的关键锁的类型,以及获取目标线程的优先级作为当前优先级,若目标进程为预设进程,关键锁的类型为预设类型,以及当前优先级小于预设优先级,则将目标线程的优先级提升至预设优先级,再按照较高的预设优先级执行目标线程,使得目标线程可以快速被调度,减少了目标线程的等待时间,也减少了其他线程的等待时间,从而减少了系统卡顿。

13、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

本文档来自技高网...

【技术保护点】

1.一种线程执行方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述按照所述预设优先级执行所述目标线程之后,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述将所述目标线程的优先级恢复为所述当前优先级,包括:

4.根据权利要求3所述的方法,其特征在于,所述根据所述函数,将所述目标线程的优先级恢复为所述当前优先级,包括:

5.根据权利要求3所述的方法,其特征在于,所述获取所述目标线程执行的函数之前,所述方法还包括:

6.根据权利要求2~5任意一项所述的方法,其特征在于,所述将所述目标线程的优先级恢复为所述当前优先级之前,所述方法还包括:

7.根据权利要求1~5任意一项所述的方法,其特征在于,所述预设进程为system_server进程。

8.一种线程执行装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括:

10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令被处理器执行时实现权利要求1~7中任一项所述方法的步骤。

...

【技术特征摘要】

1.一种线程执行方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述按照所述预设优先级执行所述目标线程之后,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述将所述目标线程的优先级恢复为所述当前优先级,包括:

4.根据权利要求3所述的方法,其特征在于,所述根据所述函数,将所述目标线程的优先级恢复为所述当前优先级,包括:

5.根据权利要求3所述的方法,其特征在于,所述获取所述目标线程执行的函数之前,所述方法还包括:<...

【专利技术属性】
技术研发人员:孔徐敏王举
申请(专利权)人:北京小米移动软件有限公司
类型:发明
国别省市:

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

1