[发明专利]一种适用于期望链接的双链表保护方法及装置在审
申请号: | 201811391957.8 | 申请日: | 2018-11-21 |
公开(公告)号: | CN109543429A | 公开(公告)日: | 2019-03-29 |
发明(设计)人: | 李萌 | 申请(专利权)人: | 武汉思普崚技术有限公司 |
主分类号: | G06F21/60 | 分类号: | G06F21/60 |
代理公司: | 北京弘权知识产权代理事务所(普通合伙) 11363 | 代理人: | 逯长明;许伟群 |
地址: | 430070 湖北省武汉市东湖新技术开发*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 加锁 链表 链接 预置 全局锁 双链 期望 嵌套 指令 待处理数据 规则限制 计算能力 链表更新 表更新 接收链 死锁 申请 更新 冲突 | ||
1.一种适用于期望链接的双链表保护方法,其特征在于,所述方法包括:
将期望链接的全局锁,拆分为普通锁,以及,hash锁,接收链表更新指令;
根据所述链表更新指令对应待处理数据的类型,确定目标预置加锁规则;
根据所述目标预置加锁规则,更新链表。
2.根据权利要求1所述的双链表保护方法,其特征在于,所述根据链表更新指令对应待处理数据的类型,确定目标预置加锁规则;
确定所述链表更新指令对应待处理数据的类型;
如果所述待处理数据的类型为:插入期望链接节点,则确定插入加锁规则为目标预置加锁规则;
如果所述待处理数据的类型为:删除期望链接节点,则确定删除加锁规则为目标预置加锁规则。
3.根据权利要求2所述的双链表保护方法,其特征在于,所述删除加锁规则包括:
如果所述待处理数据的类型为:删除预知期望链接节点,则确定预知删除加锁规则为目标预置加锁规则;
如果所述待处理数据的类型为:删除普通链表下的全部期望链接节点,则确定普通-全部删除加锁规则为目标预置加锁规则;
如果所述待处理数据的类型为:删除hash链表下的全部期望链接节点,则确定hash-全部删除加锁规则为目标预置加锁规则。
4.根据权利要求2所述的双链表保护方法,其特征在于,所述插入加锁规则具体为:
根据所述链表更新指令,确定插入节点的内容;
根据所述插入节点的内容计算出插入索引值;
根据所述插入索引值确定目标插入hash链表,以及,目标插入普通链表;
将所述目标插入hash链表的hash锁加锁,将所述目标插入普通链表的普通锁加锁;
将所述插入节点挂在目标插入普通链表上,解锁所述目标插入普通链表的普通锁;
将所述插入节点挂在目标插入hash链表的链表头上,解锁所述目标插入hash链表的hash锁。
5.根据权利要求3所述的双链表保护方法,其特征在于,所述预知删除加锁规则具体为:
使用原子操作对所述删除节点的内容设置删除标记;
判断所述删除标记是否设置成功;
若设置失败,直接退出;
若设置成功,根据所述链表更新指令,确定删除节点的内容;
根据所述删除节点的内容计算出删除索引值;
根据所述删除索引值确定第一目标删除hash链表,以及,目标删除普通链表;
将所述第一目标删除hash链表的hash锁加锁,将所述目标删除普通链表的普通锁加锁;
将所述删除节点从所述目标删除普通链表中删除,解锁所述目标删除普通链表的普通锁;
将所述删除节点从第一目标删除hash链表中删除,解锁所述第一目标删除hash链表的hash锁。
6.根据权利要求3所述的双链表保护方法,其特征在于,所述普通-全部删除加锁规则具体为:
根据所述链表更新指令,确定目标普通链表头;
获取所述目标普通链表头第一个目标普通链接节点;
删除目标普通链接节点;
获取目标普通链表头的下一个目标普通链接节点;
删除目标普通链接节点;
直至从目标普通链表头上获取不到下一个目标普通链接节点。
7.根据权利要求6所述的双链表保护方法,其特征在于,所述获取目标普通链表头的下一个目标普通链接节点的步骤包括:
使用RCU机制,遍历所述目标普通链表头,获取下一个目标普通链接节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉思普崚技术有限公司,未经武汉思普崚技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811391957.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种车载通讯信息系统终端
- 下一篇:一种用户用电隐私保护方法