一种信息处理方法及装置制造方法及图纸

技术编号:20545583 阅读:18 留言:0更新日期:2019-03-09 18:31
本申请实施例提供了一种信息处理方法及装置,包括:当对第一线程执行加锁操作时,获取针对第一线程的第一锁的锁标识;将第一锁的锁标识更新至第一线程的当前加锁记录中;当前加锁记录中包括的锁标识按照对第一线程执行加锁操作的时间顺序排序;在第二线程的历史加锁记录中,查找与第一锁关联且记录在当前加锁记录中的死锁历史记录;第二线程的历史加锁记录中包括的锁标识按照对第二线程执行加锁操作的时间顺序排序;若查找到,则显示第二线程与死锁历史记录的对应关系。应用本申请实施例提供的技术方案,能够降低死锁问题对设备产生的负面影响。

An Information Processing Method and Device

The embodiment of this application provides an information processing method and device, including: acquiring the lock identification of the first lock for the first thread when the lock operation is performed on the first thread; updating the lock identification of the first lock to the current lock record of the first thread; sorting the lock identification included in the current lock record according to the time sequence of the lock operation on the first thread; and in the second. In the thread's history lock record, the deadlock history record associated with the first lock and recorded in the current lock record is searched; the lock identification included in the history lock record of the second thread is sorted according to the time sequence in which the lock operation is performed on the second thread; if found, the corresponding relationship between the second thread and the deadlock history record is displayed. The application of the technical scheme provided in the embodiment of this application can reduce the negative impact of deadlock problem on the equipment.

【技术实现步骤摘要】
一种信息处理方法及装置
本申请涉及计算机
,特别是涉及一种信息处理方法及装置。
技术介绍
死锁,指多个进程(或线程)因为长久等待已被其他进程(或线程)占用的资源而陷入的一种状态。若一个进程等待的资源一直得不到释放,死锁就会会一直持续下去,死锁一旦发生,程序本身是解决不了的,只能依靠外部力量使得程序恢复运行,例如重启等。为解决死锁的问题,目前提供了一种检测方法,该方法中,在执行任务前开启计时器,在当前任务执行过程中,计时器进行累计加时。若计时器累计时长超过设定的最大运行时长,则当前任务发生了死锁现象,结束当前任务。该检测方法,在死锁发生后才能检测到,这时死锁问题已对设备产生了负面的影响。
技术实现思路
本申请实施例的目的在于提供一种信息处理方法及装置,以降低死锁问题对设备产生的负面影响。具体技术方案如下:第一方面,本申请实施例提供了一种信息处理方法,所述方法包括:当对第一线程执行加锁操作时,获取针对所述第一线程的第一锁的锁标识;将所述第一锁的锁标识更新至所述第一线程的当前加锁记录中;所述当前加锁记录中包括的锁标识按照对所述第一线程执行加锁操作的时间顺序排序;在第二线程的历史加锁记录中,查找与所述第一锁关联且记录在所述当前加锁记录中的死锁历史记录;所述第二线程的历史加锁记录中包括的锁标识按照对所述第二线程执行加锁操作的时间顺序排序;若查找到,则显示所述第二线程与所述死锁历史记录的对应关系。结合第一方面,在第一种可能的实现方式中,所述当对第一线程执行加锁操作时,获取针对所述第一线程的第一锁的锁标识的步骤,包括:当通过API(ApplicationProgrammingInterface,应用程序编程接口)对第一线程执行加锁操作时,运行所述API上加载的调试代码,获取针对所述第一线程的第一锁的锁标识。结合第一方面,在第二种可能的实现方式中,所述方法还包括:若未查找到,则调用加锁函数,利用所述第一锁对所述第一线程执行加锁操作;将所述第一锁的锁标识更新至所述第一线程的历史加锁记录中。结合第一方面,在第三种可能的实现方式中,所述方法还包括:在显示所述第二线程与所述死锁历史记录的对应关系之后,调用加锁函数,利用所述第一锁对所述第一线程执行加锁操作;将所述第一锁的锁标识更新至所述第一线程的历史加锁记录中;或在显示所述第二线程与所述死锁历史记录的对应关系之后,显示提示信息;若接收到用户根据所述提示信息输入的操作指令,则根据所述操作指令,调用加锁函数,利用所述第一锁对所述第一线程执行加锁操作;将所述第一锁的锁标识更新至所述第一线程的历史加锁记录中。结合第一方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:在调用加锁函数,利用所述第一锁对所述第一线程执行加锁操作之后,当对所述第一线程执行解锁操作时,获取针对所述第一线程的第一锁的锁标识;从所述第一线程的当前加锁记录中删除所述第一锁的锁标识;调用解锁函数,利用所述第一锁对所述第一线程执行解锁操作。第二方面,本申请实施例提供了一种信息处理装置,所述装置包括:获取单元,用于当对第一线程执行加锁操作时,获取针对所述第一线程的第一锁的锁标识;第一更新单元,用于将所述第一锁的锁标识更新至所述第一线程的当前加锁记录中;所述当前加锁记录中包括的锁标识按照对所述第一线程执行加锁操作的时间顺序排序;查找单元,用于在第二线程的历史加锁记录中,查找与所述第一锁关联且记录在所述当前加锁记录中的死锁历史记录;所述第二线程的历史加锁记录中包括的锁标识按照对所述第二线程执行加锁操作的时间顺序排序;显示单元,用于在查找到所述死锁历史记录的情况下,显示所述第二线程与所述死锁历史记录的对应关系。结合第二方面,在第一种可能的实现方式中,所述获取单元具体用于:当通过API对第一线程执行加锁操作时,运行所述API上加载的调试代码,获取针对所述第一线程的第一锁的锁标识。结合第二方面,在第二种可能的实现方式中,所述装置还包括:加锁单元,用于在未查找到所述死锁历史记录的情况下,则调用加锁函数,利用所述第一锁对所述第一线程执行加锁操作;第二更新单元,用于将所述第一锁的锁标识更新至所述第一线程的历史加锁记录中。结合第二方面,在第三种可能的实现方式中,所述装置还包括:加锁单元,用于在显示所述第二线程与所述死锁历史记录的对应关系之后,调用加锁函数,利用所述第一锁对所述第一线程执行加锁操作;或,用于在显示所述第二线程与所述死锁历史记录的对应关系之后,显示提示信息;若接收到用户根据所述提示信息输入的操作指令,则根据所述操作指令,调用加锁函数,利用所述第一锁对所述第一线程执行加锁操作;第二更新单元,用于将所述第一锁的锁标识更新至所述第一线程的历史加锁记录中。结合第二方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述装置还包括删除单元和解锁单元;所述获取单元,还用于在调用加锁函数,利用所述第一锁对所述第一线程执行加锁操作之后,当对所述第一线程执行解锁操作时,获取针对所述第一线程的第一锁的锁标识;所述删除单元,用于从所述第一线程的当前加锁记录中删除所述第一锁的锁标识;所述解锁单元,用于调用解锁函数,利用所述第一锁对所述第一线程执行解锁操作。第三方面,本申请实施例提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使实现上述信息处理方法的任一步骤。第四方面,本申请实施例提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现上述信息处理方法的任一步骤。本申请实施例提供的信息处理方法及装置,当对第一线程执行加锁操作时,获取针对第一线程的第一锁的锁标识,将第一锁的锁标识更新至第一线程的当前加锁记录中。当在第二线程的历史加锁记录中,查找到与第一锁关联且记录在当前加锁记录中的死锁历史记录时,确定存在死锁隐患,显示第二线程与死锁历史记录的对应关系。可见,本申请实施例中,在死锁发生前,若确定存在死锁隐患,则显示了第二线程与死锁历史记录的对应关系,可有效的帮助开发人员快速定位真正问题,进而降低死锁问题对设备产生的负面影响。当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的信息处理方法的第一种流程示意图;图2为本申请实施例提供的线程加解锁的一种示意图;图3为本申请实施例提供的信息处理方法的第二种流程示意图;图4a-4b为本申请实施例提供的线程加解锁的另一种示意图;图5为本申请实施例提供的信息处理装置的一种结构示意图;图6为本申请实施例提供的电子设备的一种结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通本文档来自技高网...

【技术保护点】
1.一种信息处理方法,其特征在于,所述方法包括:当对第一线程执行加锁操作时,获取针对所述第一线程的第一锁的锁标识;将所述第一锁的锁标识更新至所述第一线程的当前加锁记录中;所述当前加锁记录中包括的锁标识按照对所述第一线程执行加锁操作的时间顺序排序;在第二线程的历史加锁记录中,查找与所述第一锁关联且记录在所述当前加锁记录中的死锁历史记录;所述第二线程的历史加锁记录中包括的锁标识按照对所述第二线程执行加锁操作的时间顺序排序;若查找到,则显示所述第二线程与所述死锁历史记录的对应关系。

【技术特征摘要】
1.一种信息处理方法,其特征在于,所述方法包括:当对第一线程执行加锁操作时,获取针对所述第一线程的第一锁的锁标识;将所述第一锁的锁标识更新至所述第一线程的当前加锁记录中;所述当前加锁记录中包括的锁标识按照对所述第一线程执行加锁操作的时间顺序排序;在第二线程的历史加锁记录中,查找与所述第一锁关联且记录在所述当前加锁记录中的死锁历史记录;所述第二线程的历史加锁记录中包括的锁标识按照对所述第二线程执行加锁操作的时间顺序排序;若查找到,则显示所述第二线程与所述死锁历史记录的对应关系。2.根据权利要求1所述的方法,其特征在于,所述当对第一线程执行加锁操作时,获取针对所述第一线程的第一锁的锁标识的步骤,包括:当通过应用程序编程接口API对第一线程执行加锁操作时,运行所述API上加载的调试代码,获取针对所述第一线程的第一锁的锁标识。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:若未查找到,则调用加锁函数,利用所述第一锁对所述第一线程执行加锁操作;将所述第一锁的锁标识更新至所述第一线程的历史加锁记录中。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在显示所述第二线程与所述死锁历史记录的对应关系之后,调用加锁函数,利用所述第一锁对所述第一线程执行加锁操作;将所述第一锁的锁标识更新至所述第一线程的历史加锁记录中;或在显示所述第二线程与所述死锁历史记录的对应关系之后,显示提示信息;若接收到用户根据所述提示信息输入的操作指令,则根据所述操作指令,调用加锁函数,利用所述第一锁对所述第一线程执行加锁操作;将所述第一锁的锁标识更新至所述第一线程的历史加锁记录中。5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:在调用加锁函数,利用所述第一锁对所述第一线程执行加锁操作之后,当对所述第一线程执行解锁操作时,获取针对所述第一线程的第一锁的锁标识;从所述第一线程的当前加锁记录中删除所述第一锁的锁标识;调用解锁函数,利用所述第一锁对所述第一线程执行解锁操作。6.一种信息处理装置,其特征在于,所述装置包括:获取单元,用于当对第一线程执行加锁操作时,获取针对所述第一线程的第一锁的锁标识;第一更新单元,用于将所述第一锁的锁标识更新至所述第一线程的当前加锁记录中;所述当前加锁记录中包括的锁标识按照对所述第一...

【专利技术属性】
技术研发人员:郑培荣
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:浙江,33

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

1