[发明专利]一种并发哈希表的无锁操作方法在审

专利信息
申请号: 201610377615.5 申请日: 2016-05-31
公开(公告)号: CN106055646A 公开(公告)日: 2016-10-26
发明(设计)人: 卫冰洁;王啸;熊刚;贺欣;石俊峥;刘培朋;李镇;周立;王秀文;贺龙涛;李晓倩;袁媛;朱佳伟;李城龙;张慧;曹首峰;于贺威;王大伟;刘阳 申请(专利权)人: 国家计算机网络与信息安全管理中心
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京理工大学专利中心 11120 代理人: 高燕燕
地址: 100029*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 为了提升多线程对哈希表操作的高效性,本发明提供一种并发哈希表的无锁操作方法。当需要对哈希表进行插入操作时,首先构造新增的值对象,并将对象中的next指针指向键值对应的哈希槽中的指针指向的对象,同时利用原子操作将对应哈希槽中的指针指向新增的对象;当需要对哈希表进行删除操作时,利用原子操作将对应的对象从链表中移除;当需要对哈希表进行更新操作时,首先构造需要更新的对象的副本,并进行更新,同时原子地将更新后的对象插入到链表中;对于删除对象的回收,利用Hazard指针实现。
搜索关键词: 一种 并发 哈希表 操作方法
【主权项】:
一种并发哈希表的无锁操作方法,包括插入操作、更新操作、删除操作;其特征在于,其中:插入操作具体包括如下步骤:1.1获取新插入元素键值对应的哈希槽,执行1.2;1.2获取哈希槽中存储的链表的表头,执行1.3;1.3构造新的值对象,将对象的next指针指向1.2中获得的表头对象,执行1.4;1.4利用CAS操作将哈希槽中的指针指向新建的对象;更新操作具体包括如下步骤:2.1获取需要更新的元素的键值,执行2.2;2.2获取键值对应的哈希槽中存储的链表表头,执行2.3;2.3在链表中查找对应的需要更新的对象,执行2.4;2.4构造对象的副本,并进行更新,执行2.5;2.5将更新后的对象的next指针指向原对象的next指针指向的对象,执行2.6;2.6利用原子操作将新对象插入到链表中;删除操作具体包括如下步骤:3.1获取需要删除的元素的键值,执行3.2;3.2获取键值对应的哈希槽中存储的链表表头,执行3.3;3.3在链表中查找对应的需要删除的对象,执行3.4;3.4利用原子操作将需要删除对象的前一个对象的next指针指向删除对象的下一个对象。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家计算机网络与信息安全管理中心,未经国家计算机网络与信息安全管理中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610377615.5/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top