[发明专利]死锁控制方法和装置有效
申请号: | 201610261308.0 | 申请日: | 2016-04-25 |
公开(公告)号: | CN107305507B | 公开(公告)日: | 2020-05-01 |
发明(设计)人: | 魏亚文;孙政 | 申请(专利权)人: | 北京京东尚科信息技术有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 孙清然;王琦 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 死锁 控制 方法 装置 | ||
本申请公开了一种死锁控制方法和装置,包括:预先将应用程序中需要请求共享资源的代码封装为函数模块;当执行所述函数模块时,保存上下文环境信息于线程的回滚资源池中;对需要请求的共享资源进行锁定,如果锁定成功,则触发线程继续执行;否则,阻塞线程;当线程需要释放共享资源时,将相应上下文环境信息从线程回滚资源池中删除;当发生死锁时,确定当前需要释放资源的线程S1以及资源释放时需要回滚到的目标函数模块;利用线程S1回滚资源池中的上下文环境信息,将线程S1的待执行位置回滚到目标函数模块;阻塞线程S1,触发当前等待被释放的共享资源的线程获取该共享资源。本发明可以快速地解决死锁问题,且可以确保程序运行结果的准确性。
技术领域
本发明涉及计算机应用信技术,特别是涉及一种死锁控制方法和装置。
背景技术
在高并发多线程的系统中,有很多一次只能由一个线程使用的资源。若干线程往往期望共享这些资源。但是一个线程需要的资源往往不只一个。这样就会出现许多线程竞争有限资源,如果线程间推进不当,则容易造成多个线程之间彼此占有对方期待的资源从而循环等待的情况。该情况,称之为死锁。死锁一旦出现,对整个系统的影响是致命的。
目前,针对死锁的解决方案通常有两种,一种是整个系统重启;另一种是选择死锁线程中优先级较低的线程释放资源,取消线程。这两种方法,由于是直接取消线程的执行,因此都会或多或少丢失内存中的数据,另外,当再次执行被取消的线程时,程序的执行环境发生了改变,因此,可能会造成程序运行时出现大的误差。
由此可见,现有的死锁解决方案存在丢失数据、运行误差大等风险问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种死锁控制方法和装置,可以简单快速地解决死锁问题,且可以避免内存数据的丢失、确保程序运行结果的准确性。
为了达到上述目的,本发明提出的技术方案为:
一种死锁控制方法,包括:
预先将应用程序中需要请求共享资源的代码封装为函数模块;
当所述应用程序的线程执行所述函数模块时,将当前的上下文环境信息保存在所述线程的回滚资源池中;对所述函数模块需要请求的共享资源进行锁定,如果锁定成功,则触发所述线程继续执行;否则,阻塞所述线程;
当所述线程需要释放所占用的共享资源时,将相应的上下文环境信息从所述线程的回滚资源池中删除;
当发生死锁时,确定当前需要释放资源的线程S1以及资源释放时需要回滚到的目标函数模块;利用所述线程S1的回滚资源池中的上下文环境信息,按照先执行后回退的原则,将所述线程S1的待执行位置回滚到所述目标函数模块;阻塞所述线程S1,触发当前等待被释放的共享资源的线程获取所述被释放的共享资源。
一种死锁控制装置,包括:
调用控制单元,用于当应用程序的线程执行指定的函数模块时,将当前的上下文环境信息保存在所述线程的回滚资源池中;对所述函数模块需要请求的共享资源进行锁定,如果锁定成功,则触发所述线程继续执行;否则,阻塞所述线程;所述函数模块为预先采用函数形式对应用程序中需要请求共享资源的代码进行封装后得到的模块;
资源释放单元,用于当所述线程需要释放所占用的共享资源时,将相应的上下文环境信息从所述线程的回滚资源池中删除;
死锁控制单元,用于当发生死锁时,确定当前需要释放资源的线程S1以及资源释放时需要回滚到的目标函数模块;利用所述线程S1的回滚资源池中的上下文环境信息,按照先执行后回退的原则,将所述线程S1的待执行位置回滚到所述目标函数模块;阻塞所述线程S1,触发当前等待被释放的共享资源的线程获取所述被释放的共享资源;
资源池管理单元,用于为所述应用程序的各线程创建和维护所述回滚资源池。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司,未经北京京东尚科信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610261308.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:动态分配内存的方法、装置及系统
- 下一篇:制造执行系统及其操作方法