[发明专利]一种读写锁的实现方法、装置及电子设备有效
| 申请号: | 202110280807.5 | 申请日: | 2021-03-16 |
| 公开(公告)号: | CN113010325B | 公开(公告)日: | 2023-07-25 |
| 发明(设计)人: | 汪洋 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
| 主分类号: | G06F9/52 | 分类号: | G06F9/52 |
| 代理公司: | 北京银龙知识产权代理有限公司 11243 | 代理人: | 许静;黄灿 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 读写 实现 方法 装置 电子设备 | ||
1.一种读写锁的实现方法,所述方法包括:
在接收到第一写请求的情况下,将写计数锁上锁,并将写计数增一,其中,所述写计数的初始化值为零;
在所述写计数为一的情况下,将读锁上锁;
在所述读锁为上锁状态的情况下,将所述写计数锁解锁;
在写计数锁为解锁状态的情况下,将写锁上锁,对所述第一写请求对应的第一资源进行写操作;
其中,所述对所述第一写请求对应的第一资源进行写操作之后,还包括:
将所述写锁解锁;
将所述写计数锁上锁;
在所述写计数大于零的情况下,将所述写计数减一;
在所述写计数为零的情况下,将所述读锁解锁,以及将所述写计数锁解锁;
其中,所述将所述写计数锁上锁之后,还包括:
在所述写计数不为零的情况下,将所述写计数锁解锁;
其中,所述在接收到第一写请求的情况下,响应于所述第一写请求,将写计数锁上锁之前,还包括:
在接收到第一读请求的情况下,将所述读锁上锁以及将读计数锁上锁;
将读计数增一,其中,所述读计数的初始化值为零;
在所述读计数为一的情况下,将所述写锁上锁;
在所述写锁为上锁状态的情况下,将所述读计数锁解锁;
在所述读计数锁为解锁状态的情况下,将所述读锁解锁;
其中,所述将所述读锁解锁之后,还包括:
将所述读计数锁上锁;
在所述读计数大于零的情况下,将所述读计数减一;
在所述读计数为零的情况下,将所述写锁解锁,以及将所述读计数锁解锁;
其中,所述将所述读计数锁上锁之后,还包括:
在所述读计数不为零的情况下,将所述读计数锁解锁。
2.一种读写锁的实现装置,所述装置包括:
第一上锁计数模块,用于在接收到第一写请求的情况下,将写计数锁上锁,并将写计数增一,其中,所述写计数的初始化值为零;
第一上锁模块,用于在所述写计数为一的情况下,将读锁上锁;
第一解锁模块,用于在所述读锁为上锁状态的情况下,将所述写计数锁解锁;
写模块,用于在写计数锁为解锁状态的情况下,将写锁上锁,对所述第一写请求对应的第一资源进行写操作;
所述装置,还包括:
第二解锁模块,用于所述写模块执行对所述第一写请求对应的第一资源进行写操作之后,将所述写锁解锁;
第二上锁模块,用于将所述写计数锁上锁;
第二计数模块,用于在所述写计数大于零的情况下,将所述写计数减一;
第三解锁模块,在所述写计数为零的情况下,将所述读锁解锁,以及将所述写计数锁解锁;
所述装置,还包括:
第四解锁模块,用于所述第二上锁模块执行将所述写计数锁上锁之后,在所述写计数不为零的情况下,将所述写计数锁解锁;
所述装置,还包括:
第二上锁计数模块,用于所述第一上锁计数模块执行在接收到第一写请求的情况下,响应于所述第一写请求,将写计数锁上锁之前,在接收到第一读请求的情况下,将所述读锁上锁以及将读计数锁上锁;
第三计数模块,用于将读计数增一,其中,所述读计数的初始化值为零;
第三上锁模块,用于在所述读计数为一的情况下,将所述写锁上锁;
第五解锁模块,用于在所述写锁为上锁状态的情况下,将所述读计数锁解锁;
第六解锁模块,用于在所述读计数锁为解锁状态的情况下,将所述读锁解锁;
所述装置,还包括:
第四上锁模块,用于所述第六解锁模块执行将所述读锁解锁之后,将所述读计数锁上锁;
第四计数模块,用于在所述读计数大于零的情况下,将所述读计数减一;
第七解锁模块,用于在所述读计数为零的情况下,将所述写锁解锁,以及将所述读计数锁解锁;
所述装置,还包括:
第八解锁模块,用于所述第四上锁模块执行将所述读计数锁上锁之后,在所述读计数不为零的情况下,将所述读计数锁解锁。
3.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1所述的读写锁的实现方法。
4.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1所述的读写锁的实现方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110280807.5/1.html,转载请声明来源钻瓜专利网。





