[发明专利]资源对象获取方法及系统有效
申请号: | 202111589020.3 | 申请日: | 2021-12-23 |
公开(公告)号: | CN114356560B | 公开(公告)日: | 2022-09-16 |
发明(设计)人: | 李旭明 | 申请(专利权)人: | 北京中科网威信息技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 张睿 |
地址: | 100094 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 资源 对象 获取 方法 系统 | ||
本发明提供一种资源对象获取方法及系统,方法包括:初始化资源池,以索引加链表的方式组织所述资源池中的所有资源对象,并标记所有资源对象的使用状态;根据哈希算法对资源分配请求的请求者提供的关键信息计算得到的索引,确定待获取的目标资源对象;若目标资源对象为未使用状态,则根据目标资源对象的索引,从资源池中获取所述目标资源对象;若目标资源对象为已使用状态,则根据目标资源对象的索引从链表中获取第一资源对象,并将第一资源对象作为目标资源对象。本发明根据资源对象的使用状态来区分资源对象是否已被使用,以链表的形式维护资源池中的未使用的资源对象,既可以保证通过哈希算法获取资源的随机性,又可以高效处理哈希冲突的情况。
技术领域
本发明涉及计算机技术领域,尤其涉及一种资源对象获取方法及系统。
背景技术
计算机中对于资源对象的分配常用哈希算法进行,哈希算法是通过对资源分配请求的请求者提供的关键信息进行压缩然后获取一个定长值(哈希值)的算法;由于通过哈希函数产生的哈希值的范围与资源对象的范围一般达不到一一对应的程度,在进行哈希值到资源对象的映射时,会存在不同的源数据被映射为同一资源对象的情况,这时候就产生了哈希冲突。
在现有的技术中,处理哈希冲突通常用开放地址法,通过一定方式对资源池进行遍历,直至找到合适的资源对象,极端情况下甚至会遍历完所有资源对象。
这种单纯的通过对转换结果进行重复调整来解决哈希冲突的方法,存在一定的盲目性,无法精确的控制重复次数,效率低下,且在哈希冲突不可避免时无法向上层告警,这就可能导致特殊情况下的性能问题。
发明内容
本发明提供的资源对象获取方法及系统,用于解决现有技术中存在的上述问题,通过根据资源对象的使用状态来区分资源对象是否已被使用,以链表的形式来维护资源池中的未使用的资源对象,既可以保证通过哈希算法获取资源的随机性,又可以高效的处理哈希冲突的情况。
本发明提供的一种资源对象获取方法,包括:
初始化资源池,以索引加链表的方式组织所述资源池中的所有资源对象,并标记所有资源对象的使用状态;
根据哈希算法对资源分配请求的请求者提供的关键信息计算得到的索引,确定待获取的目标资源对象;
若所述目标资源对象为未使用状态,则根据目标资源对象的索引,从所述资源池中获取所述目标资源对象;
若所述待获取的目标资源对象为已使用状态,则从链表中获取第一资源对象,并将所述第一资源对象作为所述目标资源对象;
其中,所述第一资源对象是由所述链表中使用状态为未使用状态的资源对象确定的;
所述关键信息用于确定所述请求者所需的资源对象类型。
根据本发明提供的一种资源对象获取方法,所述初始化资源池,以索引加链表的方式组织所述资源池中的所有资源对象,并标记所有资源对象的使用状态,包括:
初始化所述资源池,并根据所述资源池中所有资源对象的空间顺序确定所述资源池中各资源对象的索引;
根据所述各资源对象的索引,将所述各资源对象组织到链表中,并标记所述各资源对象为未使用状态。
根据本发明提供的一种资源对象获取方法,所述若所述目标资源对象为未使用状态,则根据目标资源对象的索引,从所述资源池中获取所述目标资源对象之后,还包括:
将所述资源池中所述目标资源对象的使用状态更新为已使用状态,并将所述目标资源对象从所述链表中删除;
相应地,在从链表中获取第一资源对象之后,还包括:
将所述链表中所述第一资源对象的使用状态更新为已使用状态,并将所述第一资源对象从所述链表中删除。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中科网威信息技术有限公司,未经北京中科网威信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111589020.3/2.html,转载请声明来源钻瓜专利网。