System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 死锁检测方法及存储介质技术_技高网

死锁检测方法及存储介质技术

技术编号:42226654 阅读:7 留言:0更新日期:2024-08-02 13:44
本申请提供了一种死锁检测方法及存储介质,涉及计算机应用技术领域。该方法包括:配置处理器的任务处理器模块和线程池模块;基于任务处理器模块,在线程池模块中创通话应用对应的通话线程池对象;基于任务处理器将通话请求调度至通话线程池对象,创建通话任务并执行;在执行通话任务的过程中,每隔预设周期获取处理器的状态信息;当处理器的待执行任务数量超过预设异常数量,且超过预设时长没有释放线程,则判断处理器发生死锁。本申请基于IPPBX应用的任务处理器模块和线程池模块进行线程逻辑的功能扩展,严密的条件锁检测逻辑可提升死锁监测的实时性和准确性,提升通话质量并保证通话系统可用性。

【技术实现步骤摘要】

本申请涉及计算机应用,特别涉及一种死锁检测方法及存储介质


技术介绍

1、随着信息技术的快速发展,ip-pbx设备在通信领域的应用日益广泛。在ip-pbx设备在处理大量通话时,死锁问题成为了影响设备性能的重要因素。死锁,是指两个或两个以上的进程或线程在执行过程中,由于相互等待对方释放资源而无法继续执行,从而导致系统资源的阻塞现象。在ip-pbx设备中,死锁可能导致通话无法建立、通话中断或者设备响应缓慢等问题。

2、目前,传统ippbx在解决死锁问题上存在诸多不足。首先,缺乏实时监测机制,无法及时处理死锁问题,问题累积导致通信系统稳定性受到影响。其次,现有死锁检测方法在处理大规模、高并发的通话时,通话质量会发生下降、系统吞吐量减小,可用性受到影响。

3、因此,针对上述问题,亟需一种死锁检测与处理方法,有效解决ip-pbx设备在处理大量通话时可能出现的死锁问题,提高通信系统的稳定性和可用性。


技术实现思路

1、为了实现上述目的,本申请提供了一种死锁检测方法及存储介质,能够有效解决ip-pbx设备在处理大量通话时可能出现的死锁问题,提高通信系统的稳定性和可用性。

2、第一方面,本申请提供了一种死锁检测方法,所述方法包括:

3、s1、配置处理器的任务处理器模块和线程池模块;

4、s2、基于所述任务处理器模块,在所述线程池模块中创通话应用对应的通话线程池对象;

5、s3、响应于通话呼入,基于所述任务处理器将所述通话请求调度至所述通话线程池对象中,创建通话任务并执行;

6、s4、在执行所述通话任务的过程中,每隔预设周期获取处理器的状态信息,所述状态信息至少包括待执行任务数量;

7、s5、当任一处理器的待执行任务数量超过预设异常数量,且,处理器超过预设时长没有释放线程,则判断所述处理器发生死锁。

8、在一种可能实施方式中,所述步骤s1包括:

9、s11、在所述处理器的任务处理器模块中,配置默认任务处理者default_tps和默认任务处理者监听对象default_tps_listener;

10、s12、在所述处理器的线程池模块中配置线程池任务处理者threadpool_tps、线程池任务处理者监听对象threadpool_tps_listener、串行器任务处理者serializer_tps和串行器任务处理者监听对象serializer_tps_listener;

11、其中,所述默认任务处理者监听对象、线程池任务处理者监听对象和串行器任务处理者监听对象均包含:创建start方法和任务推进task_pushed方法;所述创建方法用于创建任务,所述任务推进方法用于发送任务处理信号。

12、在一种可能实施方式中,所述通话应用是ippbx通话应用,所述步骤s2包括:

13、s21、基于所述任务处理器模块和所述线程池模块,创建ippbx通话应用对应的通话线程池对象,所述通话线程池对象中包括:通话线程池任务处理者、通话线程监听对象、通话任务处理者、通话任务处理者监听对象、通话串行器任务处理者和通话串行器监听对象;

14、s22、在创建所述通话任务处理者监听对象后,调用所述通话任务处理者监听对象的start方法,创建通话任务线程default_tps_thread;

15、所述通话线程池对象中的各个成员之间用关键标识进行关联,所述关键标识指示所述ippbx通话应用。

16、在一种可能实施方式中,所述步骤s3包括:

17、s31、响应于通话呼入,将所述通话请求放入所述通话应用对应的通话串行器任务处理者serializer_tps;

18、s32、响应于通话串行器任务处理者serializer_tps新增所述通话请求,调用通话串行器监听对象serializer_tps_listener的任务推进方法,以向通话线程池任务处理者threadpool_tps中添加待执行任务execute_tasks;

19、s33、响应于通话线程池任务处理者threadpool_tps中新增所述待执行任务,调用通话线程监听对象threadpool_tps_listener的任务推进方法,以向通话任务处理者default_tps中添加队列推进任务queued_task_pushed;

20、s34、响应于所述通话任务处理者default_tps中新增队列推进任务,调用通话任务处理者监听对象default_tps_listener的任务推进方法,以在通话线程池对象中执行通话任务处理者default_tps上所创建的通话任务。

21、在一种可能实施方式中,所述步骤s34包括:

22、响应于所述通话任务处理者default_tps中新增队列推进任务,调用通话任务处理者监听对象default_tps_listener的任务推进方法,以向通话任务线程default_tps_thread释放任务推进信号;

23、响应于所述通话任务线程default_tps_thread接收到任务推进信号,在所述通话任务线程default_tps_thread中执行通话默认任务default_tps。

24、在一种可能实施方式中,在所述通话任务线程default_tps_thread中执行通话任务default_tps后,所述方法还包括:

25、触发执行所述通话线程监听对象threadpool_tps_listener向所述通话任务处理者添加的queued_task_pushed,以触发所述queued_task_pushed创建自增线程池;

26、基于所述自增线程池,执行execute_tasks后,执行所述串行器任务执行者serializer_tps中所述通话请求对应的串行器任务。

27、在一种可能实施方式中,所述默认任务处理者default_tps、所述线程池任务处理者threadpool_tps和所述串行器任务处理者serializer_tps分别采用各自的队列计数字段来指示待执行任务数量;

28、所述默认任务处理者default_tps、所述线程池任务处理者threadpool_tps和所述串行器任务处理者serializer_tps在新增一个任务的情况下,队列计数字段数值+1,在执行完一个任务的情况下,队列计数字段数值-1。

29、在一种可能实施方式中,所述步骤s4包括:

30、在执行所述通话任务的过程中,基于预设的门狗程序,每隔预设周期根据所述通话任务所在的处理器标识,查询处理器标识对应处理器的状态信息,所述状态信息还包括:处理器标识processor、已执行任务数量processed,待执行任务数量in queue、等待执行达到过的最大数量max depth;

31、所述步骤s4的处理器状态查询过本文档来自技高网...

【技术保护点】

1.一种死锁检测方法,其特征在于,所述方法包括:

2.根据权利要求1所述的死锁检测方法,其特征在于,所述步骤S1包括:

3.根据权利要求2所述的死锁检测方法,其特征在于,所述通话应用是IPPBX通话应用,所述步骤S2包括:

4.根据权利要求2所述的死锁检测方法,其特征在于,所述步骤S3包括:

5.根据权利要求4所述的死锁检测方法,其特征在于,所述步骤S34包括:

6.根据权利要求5所述的死锁检测方法,其特征在于,在所述通话任务线程default_tps_thread中执行通话任务default_tps后,所述方法还包括:

7.根据权利要求2-6任一所述的死锁检测方法,其特征在于,所述默认任务处理者default_tps、所述线程池任务处理者threadpool_tps和所述串行器任务处理者serializer_tps分别采用各自的队列计数字段来指示待执行任务数量;

8.根据权利要求1所述的死锁检测方法,其特征在于,所述步骤S4包括:

9.根据权利要求1所述的死锁检测方法,其特征在于,所述步骤S5包括:

10.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1至9任一所述的死锁检测方法。

...

【技术特征摘要】

1.一种死锁检测方法,其特征在于,所述方法包括:

2.根据权利要求1所述的死锁检测方法,其特征在于,所述步骤s1包括:

3.根据权利要求2所述的死锁检测方法,其特征在于,所述通话应用是ippbx通话应用,所述步骤s2包括:

4.根据权利要求2所述的死锁检测方法,其特征在于,所述步骤s3包括:

5.根据权利要求4所述的死锁检测方法,其特征在于,所述步骤s34包括:

6.根据权利要求5所述的死锁检测方法,其特征在于,在所述通话任务线程default_tps_thread中执行通话任务default_tps后,所述方法还...

【专利技术属性】
技术研发人员:汪俊锋林水跃
申请(专利权)人:厦门星纵数字科技有限公司
类型:发明
国别省市:

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

1