[发明专利]一种基于内存池的map映射表多线程遍历方法及装置有效

专利信息
申请号: 202110429607.1 申请日: 2021-04-21
公开(公告)号: CN113238857B 公开(公告)日: 2022-10-14
发明(设计)人: 刘启波;黄永;陈智亮;池仲柏;李秀海;周先冬;叶丽丽 申请(专利权)人: 宜通世纪物联网研究院(广州)有限公司
主分类号: G06F9/50 分类号: G06F9/50;G06F3/06
代理公司: 广州嘉权专利商标事务所有限公司 44205 代理人: 常柯阳
地址: 510630 广东省广州市天*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 内存 map 映射 多线程 遍历 方法 装置
【权利要求书】:

1.一种基于内存池的map映射表多线程遍历方法,其特征在于,包括:

周期性建立遍历线程,所述遍历线程用于遍历存量链表,所述存量链表中包括目标单元;

识别所述目标单元的状态信息,所述状态信息包括空闲状态和非空闲状态;

根据所述目标单元的状态信息连续访问内存块的目标链表项;

根据所述目标链表项识别所述目标单元的指示标志;

根据所述指示标志获取目标实例;

将所述目标实例写入磁盘快照文件;

其中,读取数据的线程和写入数据的线程彼此分离;

所述方法还包括:

通过多个固定大小的内存块构建固定内存池;

其中,所述内存池包括存量链表和空闲链表;所述存量链表用于对新增的内存块进行管理;所述空闲链表用于对空闲的内存块进行管理;

所述目标单元包括一个布尔型stat字段、一个无符号整型index字段和两个Object实例;

其中,所述stat字段,用于表征所述目标单元的状态信息,所述状态信息包括空闲状态和非空闲状态;

所述index字段,用于表征所述目标单元使用的目标实例;

所述Object实例,用于存储不同数据类型的值;

所述方法还包括添加元素的步骤,该步骤包括:

向空闲链表申请一个块单元,将所述块单元的stat状态设置为非空闲;

对目标index字段进行奇偶判断,确定所述目标index字段的可写Object实例;

对所述可写Object实例进行赋值操作,将所述可写Object实例转变为可读Object实例;

将所述块单元的指针作为Value值插入到映射表中,构建得到一个键值对;

所述方法还包括查找和更新元素的步骤,该步骤包括:

对块单元的index值进行奇偶判断,获取所述index值指向的Object实例,得到可读实例;

对块单元的index加一后的值进行奇偶判断,获取所述index加一后指向的Object实例,得到可写实例;

所述方法还包括删除元素的步骤,该步骤包括:

在映射表中按键查找对应的值,得到目标键值对;

将所述目标键值对从所述映射表中删除;

将所述目标键值对对应的单元的stat设置为空闲状态,并将所述目标键值对对应的单元插入到空闲链表中;

所述方法还包括快照生成步骤,该步骤包括:

新建一条线程,根据新建的线程对存量链表进行遍历;

对所述存量链表中的每个块单元进行读取处理;

当所述块单元的stat为空闲状态时,则不对当前块单元进行处理;当所述块单元的stat为非空闲状态时,通过index获取当前块单元的可读实例,并将该可读实例写入到快照文件;

遍历所有存量链表完成当前数据的快照。

2.一种电子设备,其特征在于,包括处理器以及存储器;

所述存储器用于存储程序;

所述处理器执行所述程序实现如权利要求1所述的方法。

3.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,所述程序被处理器执行实现如权利要求1所述的方法。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于宜通世纪物联网研究院(广州)有限公司,未经宜通世纪物联网研究院(广州)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110429607.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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