CN107305507A - 死锁控制方法和装置 - Google Patents
死锁控制方法和装置 Download PDFInfo
- Publication number
- CN107305507A CN107305507A CN201610261308.0A CN201610261308A CN107305507A CN 107305507 A CN107305507 A CN 107305507A CN 201610261308 A CN201610261308 A CN 201610261308A CN 107305507 A CN107305507 A CN 107305507A
- Authority
- CN
- China
- Prior art keywords
- thread
- resource
- function module
- shared resource
- shared
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种死锁控制方法和装置,包括:预先将应用程序中需要请求共享资源的代码封装为函数模块;当执行所述函数模块时,保存上下文环境信息于线程的回滚资源池中;对需要请求的共享资源进行锁定,如果锁定成功,则触发线程继续执行;否则,阻塞线程;当线程需要释放共享资源时,将相应上下文环境信息从线程回滚资源池中删除;当发生死锁时,确定当前需要释放资源的线程S1以及资源释放时需要回滚到的目标函数模块;利用线程S1回滚资源池中的上下文环境信息,将线程S1的待执行位置回滚到目标函数模块;阻塞线程S1,触发当前等待被释放的共享资源的线程获取该共享资源。本发明可以快速地解决死锁问题,且可以确保程序运行结果的准确性。
Description
技术领域
本发明涉及计算机应用信技术,特别是涉及一种死锁控制方法和装置。
背景技术
在高并发多线程的系统中,有很多一次只能由一个线程使用的资源。若干线程往往期望共享这些资源。但是一个线程需要的资源往往不只一个。这样就会出现许多线程竞争有限资源,如果线程间推进不当,则容易造成多个线程之间彼此占有对方期待的资源从而循环等待的情况。该情况,称之为死锁。死锁一旦出现,对整个系统的影响是致命的。
目前,针对死锁的解决方案通常有两种,一种是整个系统重启;另一种是选择死锁线程中优先级较低的线程释放资源,取消线程。这两种方法,由于是直接取消线程的执行,因此都会或多或少丢失内存中的数据,另外,当再次执行被取消的线程时,程序的执行环境发生了改变,因此,可能会造成程序运行时出现大的误差。
由此可见,现有的死锁解决方案存在丢失数据、运行误差大等风险问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种死锁控制方法和装置,可以简单快速地解决死锁问题,且可以避免内存数据的丢失、确保程序运行结果的准确性。
为了达到上述目的,本发明提出的技术方案为:
一种死锁控制方法,包括:
预先将应用程序中需要请求共享资源的代码封装为函数模块;
当所述应用程序的线程执行所述函数模块时,将当前的上下文环境信息保存在所述线程的回滚资源池中;对所述函数模块需要请求的共享资源进行锁定,如果锁定成功,则触发所述线程继续执行;否则,阻塞所述线程;
当所述线程需要释放所占用的共享资源时,将相应的上下文环境信息从所述线程的回滚资源池中删除;
当发生死锁时,确定当前需要释放资源的线程S1以及资源释放时需要回滚到的目标函数模块;利用所述线程S1的回滚资源池中的上下文环境信息,按照先执行后回退的原则,将所述线程S1的待执行位置回滚到所述目标函数模块;阻塞所述线程S1,触发当前等待被释放的共享资源的线程获取所述被释放的共享资源。
一种死锁控制装置,包括:
调用控制单元,用于当应用程序的线程执行指定的函数模块时,将当前的上下文环境信息保存在所述线程的回滚资源池中;对所述函数模块需要请求的共享资源进行锁定,如果锁定成功,则触发所述线程继续执行;否则,阻塞所述线程;所述函数模块为预先采用函数形式对应用程序中需要请求共享资源的代码进行封装后得到的模块;
资源释放单元,用于当所述线程需要释放所占用的共享资源时,将相应的上下文环境信息从所述线程的回滚资源池中删除;
死锁控制单元,用于当发生死锁时,确定当前需要释放资源的线程S1以及资源释放时需要回滚到的目标函数模块;利用所述线程S1的回滚资源池中的上下文环境信息,按照先执行后回退的原则,将所述线程S1的待执行位置回滚到所述目标函数模块;阻塞所述线程S1,触发当前等待被释放的共享资源的线程获取所述被释放的共享资源;
资源池管理单元,用于为所述应用程序的各线程创建和维护所述回滚资源池。
综上所述,本发明提出的死锁控制方法和装置,预先将程序中需要请求共享资源的代码封装成函数形式,以便对共享资源的调用位置进行准确定位,线程在执行共享资源的调用时,对相应函数所在的上下文环境信息进行保存,这样线程回滚,在发生死锁时,线程可以基于所保存的上下文环境信息,采用线程回滚的方式,释放共享资源,以解决当前的死锁。如此,即可以简单快速地解决死锁问题,又可以避免直接取消线程的运行而导致的数据丢失、运行误差大等问题,从而可以确保应用程序运行结果的准确性,有效避免了死锁对应用程序的致命破坏。
附图说明
图1为本发明实施例的方法流程示意图;
图2为本发明实施例的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想是:预先对线程的程序代码中请求共享资源的代码进行模块化,在发生死锁时,采用线程回滚的方式,选择回滚代价小的线程进行回滚释放资源。如此,可以简单快速地解决死锁,同时由于不需要取消线程的执行,因此,可以避免运行环境的改变所致的运行误差大的问题。
图1为本发明实施例的方法流程示意图,如图1所示,该实施例实现的死锁控制方法主要包括:
步骤101、预先将应用程序中需要请求共享资源的代码封装为函数模块。
本步骤中,需要先将需要请求共享资源的代码封装为函数形式,以便对共享资源的调用位置进行准确定位,这样,线程在执行共享资源的调用时,可以对相应函数所在的上下文环境信息进行保存,在死锁发生时,基于所保存的上下文环境信息,采用回滚重新执行的方式释放死锁中被占用的资源,便可快速有效地解除死锁,而不需要取消线程的执行。
步骤102、当所述应用程序的线程执行所述函数模块时,将当前的上下文环境信息保存在所述线程的回滚资源池中;对所述函数模块需要请求的共享资源进行锁定,如果锁定成功,则触发所述线程继续执行;否则,阻塞所述线程。
本步骤中,当执行一需要请求共享资源的函数模块时,需要将当前的上下文环境信息保存,以便在发生死锁时,基于所保存的上下文环境信息,进行线程回滚,以释放被锁定的共享资源,解除死锁。
所述上下文环境信息用于在线程回滚时将运行环境恢复为相应的函数模块执行时的状态,以便重新执行该函数模块,确保程序的正确运行。所述上下文环境信息具体包括:当前使用的参数信息和函数模块信息等。
这里,回滚资源池用于保存线程运行时产生的上述上下文环境信息,为了确保程序的按照执行的倒序回滚,这些信息将采用先进行后出的方式进行保存,具体的可以采用栈结构实现回滚资源池。
简单起见,在实际应用中,对于上述函数模块中对共享资源的调用,可以利用中间件的方式实现,即线程直接调用一中间件接口,同时提供需要获取的共享资源,以及获取资源相关状态的回调函数对象。回调函数对象中包括了基于获取资源不同状态(成功、失败、阻塞)执行的方法。具体调用时,由中间件基于实际的资源调用状态来执行对应状态下的方法。具体地,中间件的设计方法为本领域技术人员所掌握,在此不再赘述。
本步骤中,阻塞线程的具体实现同现有系统,在此不再赘述。
步骤103、当所述线程需要释放所占用的共享资源时,将相应的上下文环境信息从所述线程的回滚资源池中删除。
本步骤中,在共享资源需要释放时,则说明不会存在由于占用该共享资源而导致的死锁问题,相应的上下文环境信息就没有保存的价值了,因此,此时,需要及时删除其在线程回滚资源池中的相应上下文环境信息,以确保线程回滚资源池中的上下文环境信息仅对应于当前被占用的共享资源,有利用线程回滚的准确性。
步骤104、当发生死锁时,确定当前需要释放资源的线程S1以及资源释放时需要回滚到的目标函数模块;利用所述线程S1的回滚资源池中的上下文环境信息,按照先执行后回退的原则,将所述线程S1的待执行位置回滚到所述目标函数模块;阻塞所述线程S1,触发当前等待被释放的共享资源的线程获取所述被释放的共享资源。
本步骤,用于在发生死锁时,基于回滚资源池,采用线程回滚的方式,释放被锁定的共享资源,以快速有效的解决死锁问题。
这里,在死锁发生时,需要先确定需要首先释放的共享资源。较佳地,可以按照释放资源数量最少的原则,来确定当前需要释放资源的线程S1,以及资源释放时回滚到的目标函数模块。这里,解决死锁所需要释放的资源最少即回滚的函数模块量最少,相应地,需要重新执行的代码也最少,从而使得付出的代价最小,因此可以有效提高线程运行效率。具体地,可以采用下述方法实现上述目的:
步骤x1、对于所述死锁涉及的每个线程,确定当前占用本线程等待的共享资源W的线程Q,以及在所述共享资源W对应的上下文环境信息之后保存至所述线程Q的回滚资源池的上下文环境信息数量N。
本步骤中,将计算每个处于死锁状态的线程所等待的共享资源被释放时需要付出的代价,即占用该资源的进行Q需要释放的共享资源数(即N+1),以便此后选择代价最小的共享资源进行释放。
步骤x2、选择最小的所述N对应的所述线程Q,作为所述当前需要释放资源的线程S1;并将相应的所述线程S1中请求所述共享资源W的函数模块作为所述目标函数模块。
上述步骤x1中得到的所有N中的最小值意味着其释放相应的共享资源W付出的代价是最小的,选择所有N中的最小值对应的线程Q,作为当前需要释放资源的线程S1,可以最大程度地减少死锁对程序执行效率的影响。
较佳地,可以采用下述方法将所述线程S1待执行位置回滚到的所述目标函数模块:
按照后入先出的顺序,从所述线程S1的回滚资源池中依次取出上下文环境信息并根据所述上下文环境信息释放相应的共享资源,直至取出所述目标函数模块对应的上下文环境信息并释放对应的共享资源,将所述线程S1的待执行位置设置为所述目标函数模块。
较佳地,可以采用不公平锁的方式,来触发当前等待被释放的共享资源的线程获取所述被释放的共享资源,具体地,可以通过下述方法实现:
步骤y1、唤醒当前所有等待所述被释放的共享资源的线程。
本步骤中,将唤醒所有等待被释放资源的线程,以触发它们去请求锁定该资源。
步骤y2、每个被唤醒的线程请求锁定被释放的所述共享资源,如果锁定成功,则触发该锁定成功的线程继续执行,如果锁定失败,则阻塞该锁定失败的线程。
本步骤中,如果被唤醒的线程锁定资源成功,则继续执行,否则,再次进行阻塞状态。
上述死锁的判定以及唤醒线程、阻塞线程的具体方法为本领域技术人员所掌握,在此不再赘述。
从上述方法实施例可以看出,本发明通过预先将程序中需要请求共享资源的代码封装成函数形式,线程在执行共享资源的调用时,对相应函数所在的上下文环境信息进行保存,在发生死锁时,基于所保存的上下文环境信息,采用线程回滚的方式,释放共享资源,如此,既可以简单快速地解决死锁问题,又可以确保应用程序运行结果的准确性,有效避免了死锁对应用程序的致命破坏。
图2为与上述方法相对应的一种死锁控制装置结构示意图,如图2所示,该装置包括:
调用控制单元,用于当应用程序的线程执行指定的函数模块时,将当前的上下文环境信息保存在所述线程的回滚资源池中;对所述函数模块需要请求的共享资源进行锁定,如果锁定成功,则触发所述线程继续执行;否则,阻塞所述线程;所述函数模块为预先采用函数形式对应用程序中需要请求共享资源的代码进行封装后得到的模块。
资源释放单元,用于当所述线程需要释放所占用的共享资源时,将相应的上下文环境信息从所述线程的回滚资源池中删除。
死锁控制单元,用于当发生死锁时,确定当前需要释放资源的线程S1以及资源释放时需要回滚到的目标函数模块;利用所述线程S1的回滚资源池中的上下文环境信息,按照先执行后回退的原则,将所述线程S1的待执行位置回滚到所述目标函数模块;阻塞所述线程S1,触发当前等待被释放的共享资源的线程获取所述被释放的共享资源。
资源池管理单元,用于为所述应用程序的各线程创建和维护回滚资源池。
这里,该资源池管理单元将创建和维护当前各线程的回滚资源池,具体的维护包括对回滚资源池中上下文环境信息执行写入、读取、删除等操作。
较佳地,所述资源释放单元,用于按照释放资源数量最少的原则,确定当前需要释放资源的线程S1,以及资源释放时回滚到的目标函数模块。
较佳地,所述死锁控制单元,用于对于所述死锁涉及的每个线程,确定当前占用本线程等待的共享资源W的线程Q,以及在所述共享资源W对应的上下文环境信息之后保存至所述线程Q的回滚资源池的上下文环境信息数量N;选择最小的所述N对应的所述线程Q,作为所述当前需要释放资源的线程S1;并将相应的所述线程S1中请求所述共享资源W的函数模块作为所述目标函数模块。
较佳地,所述死锁控制单元,用于按照后入先出的顺序,从所述线程S1的回滚资源池中依次取出上下文环境信息并根据所述上下文环境信息释放相应的共享资源,直至取出所述目标函数模块对应的上下文环境信息并释放对应的共享资源,将所述线程S1的待执行位置设置为所述目标函数模块。
较佳地,所述死锁控制单元,用于唤醒当前所有等待所述被释放的共享资源的线程;触发每个被唤醒的线程请求锁定被释放的所述共享资源,如果锁定成功,则触发该锁定成功的线程继续执行,如果锁定失败,则阻塞该锁定失败的线程。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种死锁控制方法,其特征在于,包括:
预先将应用程序中需要请求共享资源的代码封装为函数模块;
当所述应用程序的线程执行所述函数模块时,将当前的上下文环境信息保存在所述线程的回滚资源池中;对所述函数模块需要请求的共享资源进行锁定,如果锁定成功,则触发所述线程继续执行;否则,阻塞所述线程;
当所述线程需要释放所占用的共享资源时,将相应的上下文环境信息从所述线程的回滚资源池中删除;
当发生死锁时,确定当前需要释放资源的线程S1以及资源释放时需要回滚到的目标函数模块;利用所述线程S1的回滚资源池中的上下文环境信息,按照先执行后回退的原则,将所述线程S1的待执行位置回滚到所述目标函数模块;阻塞所述线程S1,触发当前等待被释放的共享资源的线程获取所述被释放的共享资源。
2.根据权利要求1所述的方法,其特征在于,按照释放资源数量最少的原则,确定当前需要释放资源的线程S1,以及资源释放时回滚到的目标函数模块。
3.根据权利要求2所述的方法,其特征在于,所述确定当前需要释放资源的线程S1,以及资源释放时回滚到的目标函数模块包括:
对于所述死锁涉及的每个线程,确定当前占用本线程等待的共享资源W的线程Q,以及在所述共享资源W对应的上下文环境信息之后保存至所述线程Q的回滚资源池的上下文环境信息数量N;
选择最小的所述N对应的所述线程Q,作为所述当前需要释放资源的线程S1;并将相应的所述线程S1中请求所述共享资源W的函数模块作为所述目标函数模块。
4.根据权利要求1所述的方法,其特征在于,所述将所述线程S1待执行位置回滚到的所述目标函数模块包括:
按照后入先出的顺序,从所述线程S1的回滚资源池中依次取出上下文环境信息并根据所述上下文环境信息释放相应的共享资源,直至取出所述目标函数模块对应的上下文环境信息并释放对应的共享资源,将所述线程S1的待执行位置设置为所述目标函数模块。
5.根据权利要求1所述的方法,其特征在于,所述触发当前等待被释放的共享资源的线程获取所述被释放的共享资源包括:
唤醒当前所有等待所述被释放的共享资源的线程;
每个被唤醒的线程请求锁定被释放的所述共享资源,如果锁定成功,则触发该锁定成功的线程继续执行,如果锁定失败,则阻塞该锁定失败的线程。
6.一种死锁控制装置,其特征在于,包括:
调用控制单元,用于当应用程序的线程执行指定的函数模块时,将当前的上下文环境信息保存在所述线程的回滚资源池中;对所述函数模块需要请求的共享资源进行锁定,如果锁定成功,则触发所述线程继续执行;否则,阻塞所述线程;所述函数模块为预先采用函数形式对应用程序中需要请求共享资源的代码进行封装后得到的模块;
资源释放单元,用于当所述线程需要释放所占用的共享资源时,将相应的上下文环境信息从所述线程的回滚资源池中删除;
死锁控制单元,用于当发生死锁时,确定当前需要释放资源的线程S1以及资源释放时需要回滚到的目标函数模块;利用所述线程S1的回滚资源池中的上下文环境信息,按照先执行后回退的原则,将所述线程S1的待执行位置回滚到所述目标函数模块;阻塞所述线程S1,触发当前等待被释放的共享资源的线程获取所述被释放的共享资源;
资源池管理单元,用于为所述应用程序的各线程创建和维护所述回滚资源池。
7.根据权利要求6所述的装置,其特征在于,所述资源释放单元,用于按照释放资源数量最少的原则,确定当前需要释放资源的线程S1,以及资源释放时回滚到的目标函数模块。
8.根据权利要求7所述的装置,其特征在于,所述死锁控制单元,用于对于所述死锁涉及的每个线程,确定当前占用本线程等待的共享资源W的线程Q,以及在所述共享资源W对应的上下文环境信息之后保存至所述线程Q的回滚资源池的上下文环境信息数量N;选择最小的所述N对应的所述线程Q,作为所述当前需要释放资源的线程S1;并将相应的所述线程S1中请求所述共享资源W的函数模块作为所述目标函数模块。
9.根据权利要求6所述的装置,其特征在于,所述死锁控制单元,用于按照后入先出的顺序,从所述线程S1的回滚资源池中依次取出上下文环境信息并根据所述上下文环境信息释放相应的共享资源,直至取出所述目标函数模块对应的上下文环境信息并释放对应的共享资源,将所述线程S1的待执行位置设置为所述目标函数模块。
10.根据权利要求6所述的装置,其特征在于,所述死锁控制单元,用于唤醒当前所有等待所述被释放的共享资源的线程;触发每个被唤醒的线程请求锁定被释放的所述共享资源,如果锁定成功,则触发该锁定成功的线程继续执行,如果锁定失败,则阻塞该锁定失败的线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610261308.0A CN107305507B (zh) | 2016-04-25 | 2016-04-25 | 死锁控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610261308.0A CN107305507B (zh) | 2016-04-25 | 2016-04-25 | 死锁控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107305507A true CN107305507A (zh) | 2017-10-31 |
CN107305507B CN107305507B (zh) | 2020-05-01 |
Family
ID=60150286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610261308.0A Active CN107305507B (zh) | 2016-04-25 | 2016-04-25 | 死锁控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107305507B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967177A (zh) * | 2017-11-30 | 2018-04-27 | 努比亚技术有限公司 | 基于核心进程的内存优化方法、移动终端及可读存储介质 |
CN108509260A (zh) * | 2018-01-31 | 2018-09-07 | 深圳市万普拉斯科技有限公司 | 线程识别处理方法、装置、计算机设备和存储介质 |
CN117076147A (zh) * | 2023-10-13 | 2023-11-17 | 支付宝(杭州)信息技术有限公司 | 死锁检测方法、装置、设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1917504A (zh) * | 2005-08-20 | 2007-02-21 | 中兴通讯股份有限公司 | 一种避免资源数据共享访问导致死锁的加锁方法 |
KR100757263B1 (ko) * | 2005-12-26 | 2007-09-12 | 전자부품연구원 | 인덱싱 페이지를 이용한 데드록 방지 방법 및 이를실현시키기 위한 프로그램을 기록한 컴퓨터로 판독가능한기록 매체 |
CN101295266A (zh) * | 2008-06-05 | 2008-10-29 | 华为技术有限公司 | 检测和解除死锁的方法、装置和系统 |
CN101576830A (zh) * | 2009-06-04 | 2009-11-11 | 中兴通讯股份有限公司 | 数据库事务锁机制的死锁检测方法及装置 |
CN101661402A (zh) * | 2008-08-29 | 2010-03-03 | 国际商业机器公司 | 用于数据库管理系统的死锁处理方法和系统 |
CN105335237A (zh) * | 2015-11-09 | 2016-02-17 | 浪潮电子信息产业股份有限公司 | 一种操作系统的死锁预防方法 |
-
2016
- 2016-04-25 CN CN201610261308.0A patent/CN107305507B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1917504A (zh) * | 2005-08-20 | 2007-02-21 | 中兴通讯股份有限公司 | 一种避免资源数据共享访问导致死锁的加锁方法 |
KR100757263B1 (ko) * | 2005-12-26 | 2007-09-12 | 전자부품연구원 | 인덱싱 페이지를 이용한 데드록 방지 방법 및 이를실현시키기 위한 프로그램을 기록한 컴퓨터로 판독가능한기록 매체 |
CN101295266A (zh) * | 2008-06-05 | 2008-10-29 | 华为技术有限公司 | 检测和解除死锁的方法、装置和系统 |
CN101661402A (zh) * | 2008-08-29 | 2010-03-03 | 国际商业机器公司 | 用于数据库管理系统的死锁处理方法和系统 |
CN101576830A (zh) * | 2009-06-04 | 2009-11-11 | 中兴通讯股份有限公司 | 数据库事务锁机制的死锁检测方法及装置 |
CN105335237A (zh) * | 2015-11-09 | 2016-02-17 | 浪潮电子信息产业股份有限公司 | 一种操作系统的死锁预防方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967177A (zh) * | 2017-11-30 | 2018-04-27 | 努比亚技术有限公司 | 基于核心进程的内存优化方法、移动终端及可读存储介质 |
CN107967177B (zh) * | 2017-11-30 | 2022-02-22 | 努比亚技术有限公司 | 基于核心进程的内存优化方法、移动终端及可读存储介质 |
CN108509260A (zh) * | 2018-01-31 | 2018-09-07 | 深圳市万普拉斯科技有限公司 | 线程识别处理方法、装置、计算机设备和存储介质 |
CN117076147A (zh) * | 2023-10-13 | 2023-11-17 | 支付宝(杭州)信息技术有限公司 | 死锁检测方法、装置、设备和存储介质 |
CN117076147B (zh) * | 2023-10-13 | 2024-04-16 | 支付宝(杭州)信息技术有限公司 | 死锁检测方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107305507B (zh) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103699512A (zh) | 多线程处理器中的内核间线程备用 | |
CN101884029B (zh) | 具有锁定指示器的多线程处理器 | |
US9304778B2 (en) | Handling exceptions in a data parallel system | |
CN104461876B (zh) | 一种基于运行快照序列的并行程序重现调试方法 | |
KR20170096103A (ko) | 중앙 프로세싱 유닛(cpu)과 보조 프로세서 사이의 개선된 함수 콜백 메커니즘 | |
WO1998029805A1 (en) | Shared memory control algorithm for mutual exclusion and rollback | |
CN107305507A (zh) | 死锁控制方法和装置 | |
WO2008101386A1 (fr) | Procédé de récupération d'une exception à noyau unique dans un système à plusieurs noyaux | |
EP4318211A1 (en) | Method for inspecting code under weak memory order architecture, and corresponding device | |
CN105359101A (zh) | 用于多核处理器的系统管理中断处理 | |
CN104391754B (zh) | 一种任务异常的处理方法及装置 | |
CN100538645C (zh) | 用于执行计算机程序的方法和计算设备 | |
CN105071973B (zh) | 一种报文接收方法及网络设备 | |
CN101183317A (zh) | 实时中断与多个进程状态同步的方法 | |
CN101189579B (zh) | 用于多线程处理的使用信号量的方法和装置 | |
CN101470627B (zh) | 一种mips平台下并行多核配置锁的实现方法 | |
CN111241594B (zh) | 交易信息的加签方法、装置、计算机设备和存储介质 | |
CN117707798A (zh) | 多线程并发状态下的死锁消除方法、装置、设备及介质 | |
CN111984428A (zh) | 一种资源访问时自旋锁的实现方法、装置及设备 | |
CN103810053A (zh) | 网络游戏服务器陷入死循环的处理方法 | |
CN109992388B (zh) | 一种用于核电厂安全级设备软件多任务管理系统 | |
CN105988885B (zh) | 基于补偿回滚的操作系统故障自恢复方法 | |
US20160320984A1 (en) | Information processing device, parallel processing program and method for accessing shared memory | |
CN116308343A (zh) | 智能合约交易并行执行方法及系统 | |
CN111723250B (zh) | 一种基于引用计数的链表管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |