[发明专利]一种哈希表数据冲突处理方法及装置有效
申请号: | 201711261924.7 | 申请日: | 2017-12-04 |
公开(公告)号: | CN107992577B | 公开(公告)日: | 2020-08-11 |
发明(设计)人: | 徐立坚;陶耀东;白岩;于博 | 申请(专利权)人: | 奇安信科技集团股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2453 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹;李相雨 |
地址: | 100088 北京市西城区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 哈希表 数据 冲突 处理 方法 装置 | ||
本发明实施例公开了一种哈希表数据冲突处理方法及装置,方法包括:若判断获知哈希表数据发生冲突,则启动冲突栈线程和冲突树线程,根据发生冲突的目标冲突数据对哈希桶中的冲突数据进行检索;通过冲突栈线程对冲突栈进行检索,并通过冲突树线程对冲突树进行检索;若判断获知冲突栈线程或冲突树线程检索到目标冲突数据,则获取哈希桶中的目标冲突数据。本发明实施例通过启动冲突栈线程和冲突树线程对哈希桶中的冲突数据进行检索,一旦冲突栈线程或冲突树线程检索到目标冲突数据,则获取目标冲突数据,充分利用了现有计算机系统中的多核、多CPU的硬件特性,采用双线程竞争方式优化了哈希表数据冲突处理时的处理数度,大大提高冲突数据的检索效率。
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种哈希表数据冲突处理方法及装置。
背景技术
在各种软件的开发过程中,经常会用到哈希表,哈希表是根据关键码值(哈希键值)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。在实际使用中,网络设备对网络数据进行管理时通常通过哈希表来实现数据的快速查找。例如防火墙采用哈希表实现对数据的快速查找。在哈希表查找时,键值不同的元素可能会映射到哈希表的同一个地址上,这种现象称之为冲突,并且这种冲突不可避免。
现有的网络设备对冲突的处理方法采用红黑树较多,其检索效率为O(log2n),但是在实际使用过程中,当网络设备端的数据量较大时,红黑树方法的检索效率仍然过低,无法满足用户要求。
发明内容
由于现有方法存在上述问题,本发明实施例提出一种哈希表数据冲突处理方法及装置。
第一方面,本发明实施例提出一种哈希表数据冲突处理方法,包括:
若判断获知哈希表数据发生冲突,则启动冲突栈线程和冲突树线程,根据发生冲突的目标冲突数据对哈希桶中的冲突数据进行检索;
通过所述冲突栈线程对冲突栈进行检索,并通过所述冲突树线程对冲突树进行检索;
若判断获知所述冲突栈线程或所述冲突树线程检索到所述目标冲突数据,则获取所述哈希桶中的所述目标冲突数据。
可选地,所述方法还包括:
若判断获知所述冲突栈线程或所述冲突树线程检索到所述目标冲突数据,则中止所述冲突栈线程和所述冲突树线程。
可选地,所述若判断获知所述冲突栈线程或所述冲突树线程检索到所述目标冲突数据,则获取所述哈希桶中的所述目标冲突数据之后,还包括:
将所述目标冲突数据存储至所述冲突栈的栈顶。
可选地,所述方法还包括:
若判断获知哈希表中需添加、读取或删除目标哈希表数据,则启动所述冲突树线程,对应地将所述目标哈希表数据添加进所述哈希表、或从所述哈希表中读取或删除所述目标哈希表数据。
可选地,所述若判断获知哈希表数据发生冲突,则启动冲突栈线程和冲突树线程,根据发生冲突的目标冲突数据对哈希桶中的冲突数据进行检索,具体包括:
若判断获知哈希表数据发生冲突且发生冲突的目标冲突数据首次发生冲突,则将所述目标冲突数据存储至所述哈希桶。
第二方面,本发明实施例还提出一种哈希表数据冲突处理装置,包括:
线程启动模块,用于若判断获知哈希表数据发生冲突,则启动冲突栈线程和冲突树线程,根据发生冲突的目标冲突数据对哈希桶中的冲突数据进行检索;
数据检索模块,用于通过所述冲突栈线程对冲突栈进行检索,并通过所述冲突树线程对冲突树进行检索;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奇安信科技集团股份有限公司,未经奇安信科技集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711261924.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于气动控制的平面移动装置
- 下一篇:一种用于航拍的大视角无人机
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置