[发明专利]一种互斥锁管理方法、系统及电子设备和存储介质在审
申请号: | 201811480713.7 | 申请日: | 2018-12-05 |
公开(公告)号: | CN109597692A | 公开(公告)日: | 2019-04-09 |
发明(设计)人: | 王帅阳 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 互斥锁 目标资源 上锁请求 上锁 线程 电子设备 目标变量 计算机可读存储介质 编码难度 存储介质 申请 管理 引用 | ||
本申请公开了一种互斥锁管理方法、系统及一种电子设备和计算机可读存储介质,该方法包括:当接收的目标资源的上锁请求时,构造所述上锁请求对应的MLocker类;其中,所述MLocker类中的第一成员为Mutex类的引用,所述Mutex类包括标准互斥锁和描述当前上锁线程的目标变量;判断所述目标资源的当前上锁线程是否为本线程;若是,则将所述MLocker类的第二成员设置为false;若否,则对所述目标资源进行上锁操作,并将所述MLocker类的第二成员设置为true。由此可见,本申请提供的互斥锁管理方法,当接收上锁请求时,只需对目标变量进行判断,降低了编码难度。
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种互斥锁管理方法、系统及一种电子设备和一种计算机可读存储介质。
背景技术
在分布式文件系统中,各个线程内部函数调用关系复杂,而对于大部分资源必须加互斥锁保护。为防止程序卡死,互斥锁不允许嵌套加锁,即对于一线程不允许对同一资源进行重复加锁。
针对上述情况,现有技术中在函数调用的时候,必须明确互斥锁当前是否上锁,如果没有上锁才上锁。这种方案下,编程人员需要明确函数上层的所有函数调用是否对资源已经上锁,编码难度增高。
因此,如何在防止程序卡死的前提下,降低编码难度是本领域技术人员需要解决的问题。
发明内容
本申请的目的在于提供一种互斥锁管理方法、系统及一种电子设备和一种计算机可读存储介质,在防止程序卡死的前提下,降低编码难度。
为实现上述目的,本申请提供了一种互斥锁管理方法,包括:
当接收的目标资源的上锁请求时,构造所述上锁请求对应的MLocker类;其中,所述MLocker类中的第一成员为Mutex类的引用,所述Mutex类包括标准互斥锁和描述当前上锁线程的目标变量;
判断所述目标资源的当前上锁线程是否为本线程;
若是,则将所述MLocker类的第二成员设置为false;
若否,则对所述目标资源进行上锁操作,并将所述MLocker类的第二成员设置为true。
其中,若所述目标变量具体为所述当前上锁线程的ID,则判断所述目标资源的当前上锁线程是否为本线程,包括:
判断所述目标变量是否包含本线程的ID;
若是,则判定所述目标资源的当前上锁线程为本线程;
相应的,对所述目标资源进行上锁操作,包括:
对所述目标资源进行上锁操作,并将本线程的ID添加至所述目标变量中。
其中,还包括:
当接收到所述MLocker类的析构命令时,判断本线程是否对所述目标资源进行上锁操作;
若是,则对所述目标资源进行解锁操作,并销毁所述MLocker类;
若否,则直接销毁所述MLocker类。
其中,所述判断本线程是否对所述目标资源进行上锁操作,包括:
判断所述MLocker类的第二成员是否为true;
若是,则判定本线程对所述目标资源进行上锁操作。
为实现上述目的,本申请提供了一种互斥锁管理系统,包括:
构造模块,用于当接收的目标资源的上锁请求时,构造所述上锁请求对应的MLocker类;其中,所述MLocker类中的第一成员为Mutex类的引用,所述Mutex类包括标准互斥锁和描述当前上锁线程的目标变量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811480713.7/2.html,转载请声明来源钻瓜专利网。