线程控制方法、线程控制装置及存储介质制造方法及图纸

技术编号:31311230 阅读:18 留言:0更新日期:2021-12-12 21:43
本公开是关于一种线程控制方法、线程控制装置及存储介质。其中线程控制方法包括:监测线程的持锁状态,在监测到第一线程持有锁且第二线程申请锁失败的情况下,打印第一线程调用栈,根据第一线程调用栈内记载的任务快速定位堵塞点。相比于等待第一线程释放锁后再打印超时信息的方案,能够在第一线程持锁过程中多次获取第一线程的调用栈,提高了定位堵塞点的效率。率。率。

【技术实现步骤摘要】
线程控制方法、线程控制装置及存储介质


[0001]本公开涉及信息处理领域,尤其涉及一种线程控制方法、线程控制装置及存储介质。

技术介绍

[0002]安卓Android作为移动终端的主流操作系统,在一些进程的多个线程间存在相互依赖关系,存在依赖关系的各线程间通过同步锁synchronized等机制进行同步,若存在相互依赖关系的多个线程中某一线程因持锁时间过长出现堵塞,进而会影响整个Android系统卡顿,甚至卡死重启(Application Not Responding,ANR)。为了解决Android系统出现的卡顿或卡死重启的现象,需要定位堵塞点进而了解造成堵塞的原因并提供解决堵塞的方案,但如何定位堵塞点亟需解决。

技术实现思路

[0003]为克服相关技术中存在的问题,本公开提供一种线程控制方法、线程控制装置及存储介质。
[0004]根据本公开实施例的第一方面,提供一种线程控制方法,包括:
[0005]监测线程的持锁状态,响应于监测到第一线程持有锁,且第二线程申请锁失败,打印第一线程调用栈。<br/>[0006]本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种线程控制方法,其特征在于,包括:监测线程的持锁状态;响应于监测到第一线程持有锁,且第二线程申请锁失败,打印第一线程调用栈。2.根据权利要求1所述的线程控制方法,其特征在于,所述线程控制方法还包括:响应于所述第二线程重新申请锁,且申请锁失败,再次打印所述第一线程调用栈。3.根据权利要求2所述的线程控制方法,其特征在于,再次打印所述第一线程调用栈之前,所述线程控制方法还包括:确定时间间隔满足预设的时间间隔阈值,和/或第一线程调用栈的已打印次数小于打印次数阈值,所述时间间隔为当前第二线程申请锁失败的时间与上一次打印所述第一线程调用栈的时间之间的时间间隔。4.根据权利要求3所述的线程控制方法,其特征在于,所述线程控制方法还包括:记录打印第一线程调用栈的时间戳;所述时间间隔基于所述时间戳以及当前第二线程申请锁失败的时间确定。5.根据权利要求1至4中任意一项所述的线程控制方法,其特征在于,所述打印第一线程调用栈之前,所述线程控制方法还包括:确定监测到各线程的同步函数中增加的超时参数表征超时。6.根据权利要求1所述的线程控制方法,其特征在于,所述第二线程包括同一线程,或者多个不同的线程。7.一种线程控制装置,其特征在于,包括:监测单元,用于监测线程的持锁状态;控制单元,用于响应于监测到第一线程持有锁,且第二线程申请锁失败,打印第一线程调用栈。8.根据权利要求7所述的线程控制装置,...

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

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

1