CN114356560B - 资源对象获取方法及系统 - Google Patents
资源对象获取方法及系统 Download PDFInfo
- Publication number
- CN114356560B CN114356560B CN202111589020.3A CN202111589020A CN114356560B CN 114356560 B CN114356560 B CN 114356560B CN 202111589020 A CN202111589020 A CN 202111589020A CN 114356560 B CN114356560 B CN 114356560B
- Authority
- CN
- China
- Prior art keywords
- resource
- resource object
- linked list
- target
- index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Abstract
本发明提供一种资源对象获取方法及系统,方法包括:初始化资源池,以索引加链表的方式组织所述资源池中的所有资源对象,并标记所有资源对象的使用状态;根据哈希算法对资源分配请求的请求者提供的关键信息计算得到的索引,确定待获取的目标资源对象;若目标资源对象为未使用状态,则根据目标资源对象的索引,从资源池中获取所述目标资源对象;若目标资源对象为已使用状态,则根据目标资源对象的索引从链表中获取第一资源对象,并将第一资源对象作为目标资源对象。本发明根据资源对象的使用状态来区分资源对象是否已被使用,以链表的形式维护资源池中的未使用的资源对象,既可以保证通过哈希算法获取资源的随机性,又可以高效处理哈希冲突的情况。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种资源对象获取方法及系统。
背景技术
计算机中对于资源对象的分配常用哈希算法进行,哈希算法是通过对资源分配请求的请求者提供的关键信息进行压缩然后获取一个定长值(哈希值)的算法;由于通过哈希函数产生的哈希值的范围与资源对象的范围一般达不到一一对应的程度,在进行哈希值到资源对象的映射时,会存在不同的源数据被映射为同一资源对象的情况,这时候就产生了哈希冲突。
在现有的技术中,处理哈希冲突通常用开放地址法,通过一定方式对资源池进行遍历,直至找到合适的资源对象,极端情况下甚至会遍历完所有资源对象。
这种单纯的通过对转换结果进行重复调整来解决哈希冲突的方法,存在一定的盲目性,无法精确的控制重复次数,效率低下,且在哈希冲突不可避免时无法向上层告警,这就可能导致特殊情况下的性能问题。
发明内容
本发明提供的资源对象获取方法及系统,用于解决现有技术中存在的上述问题,通过根据资源对象的使用状态来区分资源对象是否已被使用,以链表的形式来维护资源池中的未使用的资源对象,既可以保证通过哈希算法获取资源的随机性,又可以高效的处理哈希冲突的情况。
本发明提供的一种资源对象获取方法,包括:
初始化资源池,以索引加链表的方式组织所述资源池中的所有资源对象,并标记所有资源对象的使用状态;
根据哈希算法对资源分配请求的请求者提供的关键信息计算得到的索引,确定待获取的目标资源对象;
若所述目标资源对象为未使用状态,则根据目标资源对象的索引,从所述资源池中获取所述目标资源对象;
若所述待获取的目标资源对象为已使用状态,则从链表中获取第一资源对象,并将所述第一资源对象作为所述目标资源对象;
其中,所述第一资源对象是由所述链表中使用状态为未使用状态的资源对象确定的;
所述关键信息用于确定所述请求者所需的资源对象类型。
根据本发明提供的一种资源对象获取方法,所述初始化资源池,以索引加链表的方式组织所述资源池中的所有资源对象,并标记所有资源对象的使用状态,包括:
初始化所述资源池,并根据所述资源池中所有资源对象的空间顺序确定所述资源池中各资源对象的索引;
根据所述各资源对象的索引,将所述各资源对象组织到链表中,并标记所述各资源对象为未使用状态。
根据本发明提供的一种资源对象获取方法,所述若所述目标资源对象为未使用状态,则根据目标资源对象的索引,从所述资源池中获取所述目标资源对象之后,还包括:
将所述资源池中所述目标资源对象的使用状态更新为已使用状态,并将所述目标资源对象从所述链表中删除;
相应地,在从链表中获取第一资源对象之后,还包括:
将所述链表中所述第一资源对象的使用状态更新为已使用状态,并将所述第一资源对象从所述链表中删除。
根据本发明提供的一种资源对象获取方法,还包括:
在确定所述链表中不存在所述第一资源对象时,返回资源耗尽告警提示。
根据本发明提供的一种资源对象获取方法,在所述目标资源对象使用完毕之后,还包括:
根据所述目标资源对象的索引,将所述目标资源对象重新挂载到所述链表中,并将所述链表中所述目标资源对象的使用状态更新为未使用状态。
本发明还提供一种资源对象获取系统,包括:
资源池初始化模块、资源对象确定模块、第一获取模块以及第二获取模块;
所述资源池初始化模块,用于初始化资源池,以索引加链表的方式组织所述资源池中的所有资源对象,并标记所有资源对象的使用状态;
所述资源对象确定模块,用于根据哈希算法对资源分配请求的请求者提供的关键信息计算得到的索引,确定待获取的目标资源对象;
所述第一获取模块,用于若所述目标资源对象为未使用状态,则根据目标资源对象的索引,从所述资源池中获取所述目标资源对象;
所述第二获取模块,用于若所述待获取的目标资源对象为已使用状态,则从链表中获取第一资源对象,并将所述第一资源对象作为所述目标资源对象;
其中,所述第一资源对象是由所述链表中使用状态为未使用状态的资源对象确定的;
所述关键信息用于确定所述请求者所需的资源对象类型。
根据本发明提供的一种资源对象获取系统,还包括:
告警提示模块,用于在确定所述链表中不存在所述第一资源对象时,返回资源耗尽告警提示;
资源归还模块,用于根据所述目标资源对象的索引,将所述目标资源对象重新挂载到所述链表中,并将所述链表中所述目标资源对象的使用状态更新为未使用状态。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述资源对象获取方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述资源对象获取方法的步骤。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述资源对象获取方法的步骤。
本发明提供的资源对象获取方法及系统,通过根据资源对象的使用状态来区分资源对象是否已被使用,以链表的形式来维护资源池中的未使用的虚拟资源对象,提高获取资源对象的效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的资源对象获取方法的流程示意图;
图2是本发明提供的资源池初始状态对应的链表结构示意图;
图3是本发明提供的获取目标资源对象对应的链表结构示意图之一;
图4是本发明提供的获取目标资源对象时的链表结构示意图之二;
图5是本发明提供的资源池资源对象全部被使用时的链表结构示意图;
图6是本发明提供的归还目标资源对象时的链表结构示意图;
图7是本发明提供的资源对象获取系统的结构示意图;
图8是本发明提供的电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明提供的资源对象获取方法的流程示意图,如图1所示,方法包括:
S1、初始化资源池,以索引加链表的方式组织资源池中的所有资源对象,并标记所有资源对象的使用状态;
S2、根据哈希算法对资源分配请求的请求者提供的关键信息计算得到的索引,确定待获取的目标资源对象;
S3、若目标资源对象为未使用状态,则根据目标资源对象的索引,从资源池中获取目标资源对象;
S4、若目标资源对象为已使用状态,则从链表中获取第一资源对象,并将第一资源对象作为目标资源对象;
其中,第一资源对象是由链表中使用状态为未使用状态的资源对象确定的;
关键信息用于确定请求者所需的资源对象类型。
需要说明的是,上述方法的执行主体可以是计算机设备。
可选地,在资源池初始化时,将资源池中各资源对象组织到一个链表中,该链表可以采用带表头的单向链表,具体如图2所示:该链表由表头、链表结构、使用状态以及资源数据(即资源对象)组成,其中Next(n)表示资源对象中记录的下一个元素的索引为n,并分别用数字“1”和数字“0”表示各资源对象的使用状态,例如可以用数字“1”表示资源对象已被使用,用数字“0”表示资源对象未被使用。
可以基于哈希算法对资源分配请求的请求者提供的关键信息进行计算得到一个索引,其中,例如通过对资源分配请求的请求者提供的源IP地址、目标IP地址、源端口以及目的端口进行哈希计算,得到一个定长值,并将该定长值作为索引,将该索引作为待获取的目标资源对象的索引,根据计算得到的目标资源对象的索引,确定资源池中目标资源对象的使用状态,若资源池中该目标资源对象的未使用状态,则直接从资源池中获取该目标资源对象,并将该目标资源对象从链表中摘除;若资源池中目标资源对象为已使用状态,则从链表中所有使用状态为未使用状态的资源对象中获取一个第一资源对象,并将该第一资源对象作为目标资源对象。
其中,哈希算法可以采用信息摘要算法MD4、MD5以及安全散列算法SHA-1。
根据资源分配请求的请求者提供的关键信息可以确定请求者所需的资源对象类型具体为IP地址资源对象、区域资源对象或线程资源对象,例如当请求者提供的关键信息包括源IP地址、目标IP地址、源端口以及目的端口时,表明请求者所需的资源对象类型为IP资源对象。
例如,如图3所示,假设根据计算得到的目标资源对象的索引为2,并经过确定资源池中索引为2的目标资源对象为已使用状态,此时,检测到索引为2的目标资源对象已被使用(其使用状态为“1”),则直接从链表中使用状态为未使用状态的其余资源对象中取出一个(即第一资源对象),并将取出的第一资源对象作为目标资源对象。
例如,如图3所示,检测到索引为2的资源对象已被使用(其使用状态为“1”),在确定该链表中存在未使用状态的第一资源对象(例如索引为1、3、4和5的资源对象)时,则从索引为1、3、4和5的资源对象任一取出一个资源对象作为第一资源对象,例如可以取出索引为1的资源对象,并将其作为目标资源对象。
本发明提供的资源对象获取方法,通过根据资源对象的使用状态来区分资源对象是否已被使用,以链表的形式来维护资源池中的未使用的资源对象,既可以保证通过哈希算法获取资源的随机性,又可以高效的处理哈希冲突的情况。
进一步地,在一个实施例中,步骤S1可以具体包括:
S11、初始化资源池,并根据资源池中所有资源对象的空间顺序确定资源池中各资源对象的索引;
S12、根据各资源对象的索引,将各资源对象组织到链表中,并标记各资源对象为未使用状态。
可选地,初始化资源池时,可以通过根据资源池中所有资源对象的空间顺序确定资源池中各资源对象的索引,然后利用得到的资源池各资源对象的索引,将各资源对象组织到链表中,并标记各资源对象为未使用状态。
需要说明的是,在资源池初始化时,各个资源对象的均为未使用状态,此时,在资源池初始化后,资源池中各资源对象组织到链表中时,各资源对象的使用状态可以具体如图2所示,索引为1至5的资源对象均为未使用状态。
本发明提供的资源对象获取方法,通过根据资源对象的使用状态来区分资源对象是否已被使用,以链表的形式来维护资源池中的未使用的资源对象,在存在哈希冲突时直接从链表中取用其余未使用的资源对象,以此解决哈希冲突,提高获取资源对象的效率。
进一步地,在一个实施例中,在步骤S2之后,还可以具体包括:
步骤1、将资源池中目标资源对象的使用状态更新为已使用状态,并将目标资源对象从链表中删除;
步骤2、相应地,在从链表中获取第一资源对象之后,还包括:
将链表中第一资源对象的使用状态更新为已使用状态,并将第一资源对象从链表中删除。
可选地,在链表中目标资源对象处于未使用状态时,将目标资源对象从链表中取出,同时更新链表中目标资源对象的使用状态为已使用状态。
例如,假设根据计算得到的目标资源对象的索引为2,根据该资源池中的使用状态的记录,确定到索引为2的目标资源对象未被使用,则直接从该资源池中取出索引为2的资源对象,将其作为目标资源对象,此时由于索引为2的目标资源对象已被使用,需要将图2所示链表中该目标资源对象的使用状态从未使用状态更新为已使用状态,更新后的该目标资源对象的使用状态如图3所示,索引为2的目标资源对象的使用状态由图2中的“0”更新为图3中的“1”,并将索引为2的目标资源对象从链表中删除。
若通过哈希算法计算得到的目标资源对象的索引在资源池中为已使用状态,则表示发生了哈希冲突,此时则直接从链表中取一个资源对象(例如:链表中的第一个资源对象)使用,并将第一个资源对象从链表中去除,同时更新第一个资源对象的使用状态为已使用状态:
例如,如图3所示,根据计算得到的目标资源对象的索引为2,根据该链表中的使用状态的记录,检测到索引为2的目标资源对象已被使用(其使用状态为“1”),则将索引为1的资源对象取出,并将其作为目标资源对象,然后,将索引为1的资源对象的使用状态更新为已使用状态,具体如图4所示,并将索引为1的资源对象从链表中删除,其中,实线箭头表示最终选定的资源对象,虚线箭头表示使用过的资源对象。
本发明提供的资源对象获取方法,通过将未使用的资源对象以链表的形式存储,能够避免哈希冲突时导致的获取资源对象的效率低下,提高获取资源对象的效率。
进一步地,在一个实施例中,在步骤S4之后还可以具体包括:
S5、在确定链表中不存在第一资源对象时,返回资源耗尽告警提示。
可选地,若该链表中的目标资源对象为已使用状态,则在确定链表中不存在第一资源对象时,代表链表中存储的资源对象都已经被使用了,此时需要返回资源耗尽告警提示。
例如,如图5所示,根据计算得到的目标资源对象的索引为2,根据该链表中的使用状态的记录,检测到索引为2的资源对象已被使用(其使用状态为“1”),同时链表中索引为1、3、4以及5的各资源对象的使用状态均为“1”,则代表链表中的各资源对象均已经被使用,即此时链表中存储的资源对象数目为0,返回资源耗尽告警提示。
本发明提供的资源对象获取方法,将未使用的资源对象以链表的形式存储,能够避免哈希冲突时导致的获取资源对象的效率低下,提高获取资源对象的效率,同时,在资源对象已耗尽的情况下,返回资源耗尽告警,为上层异常处理提供依据,可控性高。
进一步地,在一个实施例中,所述方法还可以具体包括:
在目标资源对象使用完毕之后,根据目标资源对象的索引,将目标资源对象重新挂载到链表中,并将链表中目标资源对象的使用状态更新为未使用状态。
可选地,在目标资源对象使用完毕之后,根据目标资源对象的索引,将目标资源对象重新挂载到链表中,并将链表中目标资源对象的使用状态更新为未使用状态。
例如,若根据计算得到的目标资源对象的索引为2,当该目标资源对象使用完毕后需要将该目标资源对象重新挂载到链表中,并将链表中该目标资源对象的使用状态从已使用状态更新为未使用状态,参见图6,此时,索引为2的目标资源对象的使用状态为“0”,索引为1的资源对象的使用状态为“1”(代表该资源对象仍处于被使用状态)。
由于链表采用的是带表头的单向链表,在挂载该目标资源对象时,可以采用头插法将该目标资源对象添加到链表中。
头插法:通过建立一个头节点,进行初始化定义,Next存储下一个节点位置的地址,初始化定义指针域为空,表示该头部节点后面指向任何位置的地址,开始时只有一个头部节点。
本发明提供的资源对象获取方法,通过对资源池中的各资源对象增加使用记录来区分资源对象是否已被使用,通过对资源对象增加表头结构的办法,以链表的形式来维护资源池中未使用的资源,能够避免哈希冲突时导致的获取资源对象的效率低下,提高获取资源对象的效率,在资源对象已耗尽的情况下,返回资源耗尽告警,为上层异常处理提供依据,可控性高。
下面对本发明提供的资源对象获取系统进行描述,下文描述的资源对象获取系统与上文描述的资源对象获取方法可相互对应参照。
图7是本发明提供的资源对象获取系统的结构示意图,如图7所示,包括:
资源池初始化模块710、资源对象确定模块711、第一获取模块712以及第二获取模块713;
资源池初始化模块710,用于初始化资源池,以索引加链表的方式组织资源池中的所有资源对象,并标记所有资源对象的使用状态;
资源对象确定模块711,用于根据哈希算法对资源分配请求的请求者提供的关键信息计算得到的索引,确定待获取的目标资源对象;
第一获取模块712,用于若目标资源对象为未使用状态,则根据目标资源对象的索引,从资源池中获取目标资源对象;
第二获取模块713,若目标资源对象为已使用状态,则从链表中获取第一资源对象,并将第一资源对象作为目标资源对象;
其中,第一资源对象是由链表中使用状态为未使用状态的资源对象确定的;
关键信息用于确定请求者所需的资源对象类型。
本发明提供的资源对象获取系统,通过根据资源对象的使用状态来区分资源对象是否已被使用,以链表的形式来维护资源池中的未使用的资源对象,提高获取资源对象的效率。
进一步地,在一个实施例中,资源对象获取系统,还可以具体包括:
告警提示模块,用于在确定链表中不存在第一资源对象时,返回资源耗尽告警提示;
资源归还模块,用于根据目标资源对象的索引,将目标资源对象重新挂载到所述链表中,并将链表中所述目标资源对象的使用状态更新为未使用状态。
本发明提供的资源对象获取系统,通过对资源池中的各资源对象增加使用记录来区分资源对象是否已被使用,通过对资源对象增加表头结构的办法,以链表的形式来维护资源池中未使用的资源,能够避免哈希冲突时导致的获取资源对象的效率低下,提高获取资源对象的效率,在资源对象已耗尽的情况下,返回资源耗尽告警,为上层异常处理提供依据,可控性高。
图8是本发明提供的一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communication interface)811、存储器(memory)812和总线(bus)813,其中,处理器810,通信接口811,存储器812通过总线813完成相互间的通信。处理器810可以调用存储器812中的逻辑指令,以执行如下方法:
初始化资源池,以索引加链表的方式组织资源池中的所有资源对象,并标记所有资源对象的使用状态;
根据哈希算法对资源分配请求的请求者提供的关键信息计算得到的索引,确定待获取的目标资源对象;
若目标资源对象为未使用状态,则根据目标资源对象的索引,从资源池中获取所述目标资源对象;
若待获取的目标资源对象为已使用状态,则从链表中获取第一资源对象,并将第一资源对象作为目标资源对象;
其中,第一资源对象是由链表中使用状态为未使用状态的资源对象确定的;
关键信息用于确定请求者所需的资源对象类型。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机电源屏(可以是个人计算机,服务器,或者网络电源屏等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的资源对象获取方法,例如包括:
初始化资源池,以索引加链表的方式组织资源池中的所有资源对象,并标记所有资源对象的使用状态;
根据哈希算法对资源分配请求的请求者提供的关键信息计算得到的索引,确定待获取的目标资源对象;
若目标资源对象为未使用状态,则根据目标资源对象的索引,从资源池中获取所述目标资源对象;
若待获取的目标资源对象为已使用状态,则从链表中获取第一资源对象,并将第一资源对象作为目标资源对象;
其中,第一资源对象是由链表中使用状态为未使用状态的资源对象确定的;
关键信息用于确定请求者所需的资源对象类型。
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的资源对象获取方法,例如包括:
初始化资源池,以索引加链表的方式组织资源池中的所有资源对象,并标记所有资源对象的使用状态;
根据哈希算法对资源分配请求的请求者提供的关键信息计算得到的索引,确定待获取的目标资源对象;
若目标资源对象为未使用状态,则根据目标资源对象的索引,从资源池中获取所述目标资源对象;
若待获取的目标资源对象为已使用状态,则从链表中获取第一资源对象,并将第一资源对象作为目标资源对象;
其中,第一资源对象是由链表中使用状态为未使用状态的资源对象确定的;
关键信息用于确定请求者所需的资源对象类型。
以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机电源屏(可以是个人计算机,服务器,或者网络电源屏等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种资源对象获取方法,其特征在于,包括:
初始化资源池,以索引加链表的方式组织所述资源池中的所有资源对象,并标记所有资源对象的使用状态;
根据哈希算法对资源分配请求的请求者提供的关键信息计算得到的索引,确定待获取的目标资源对象;
若所述目标资源对象为未使用状态,则根据目标资源对象的索引,从所述资源池中获取所述目标资源对象;
若所述待获取的目标资源对象为已使用状态,则从链表中获取第一资源对象,并将所述第一资源对象作为所述目标资源对象;
其中,所述第一资源对象是由所述链表中使用状态为未使用状态的资源对象确定的;
所述关键信息用于确定所述请求者所需的资源对象类型。
2.根据权利要求1所述的资源对象获取方法,其特征在于,所述初始化资源池,以索引加链表的方式组织所述资源池中的所有资源对象,并标记所有资源对象的使用状态,包括:
初始化所述资源池,并根据所述资源池中所有资源对象的空间顺序确定所述资源池中各资源对象的索引;
根据所述各资源对象的索引,将所述各资源对象组织到链表中,并标记所述各资源对象为未使用状态。
3.根据权利要求1所述的资源对象获取方法,其特征在于,在所述若所述目标资源对象为未使用状态,则根据目标资源对象的索引,从所述资源池中获取所述目标资源对象之后,还包括:
将所述资源池中所述目标资源对象的使用状态更新为已使用状态,并将所述目标资源对象从所述链表中删除;
相应地,在从链表中获取第一资源对象之后,还包括:
将所述链表中所述第一资源对象的使用状态更新为已使用状态,并将所述第一资源对象从所述链表中删除。
4.根据权利要求1所述的资源对象获取方法,其特征在于,还包括:
在确定所述链表中不存在所述第一资源对象时,返回资源耗尽告警提示。
5.根据权利要求1所述的资源对象获取方法,其特征在于,在所述目标资源对象使用完毕之后,还包括:
根据所述目标资源对象的索引,将所述目标资源对象重新挂载到所述链表中,并将所述链表中所述目标资源对象的使用状态更新为未使用状态。
6.一种资源对象获取系统,其特征在于,包括:资源池初始化模块、资源对象确定模块、第一获取模块以及第二获取模块;
所述资源池初始化模块,用于初始化资源池,以索引加链表的方式组织所述资源池中的所有资源对象,并标记所有资源对象的使用状态;
所述资源对象确定模块,用于根据哈希算法对资源分配请求的请求者提供的关键信息计算得到的索引,确定待获取的目标资源对象;
所述第一获取模块,用于若所述目标资源对象为未使用状态,则根据目标资源对象的索引,从所述资源池中获取所述目标资源对象;
所述第二获取模块,用于若所述目标资源对象为已使用状态,则从链表中获取第一资源对象,并将所述第一资源对象作为所述目标资源对象;
其中,所述第一资源对象是由所述链表中使用状态为未使用状态的资源对象确定的;
所述关键信息用于确定所述请求者所需的资源对象类型。
7.根据权利要求6所述的资源对象获取系统,其特征在于,还包括:
告警提示模块,用于在确定所述链表中不存在所述第一资源对象时,返回资源耗尽告警提示;
资源归还模块,用于根据所述目标资源对象的索引,将所述目标资源对象重新挂载到所述链表中,并将所述链表中所述目标资源对象的使用状态更新为未使用状态。
8.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述资源对象获取方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述资源对象获取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111589020.3A CN114356560B (zh) | 2021-12-23 | 2021-12-23 | 资源对象获取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111589020.3A CN114356560B (zh) | 2021-12-23 | 2021-12-23 | 资源对象获取方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114356560A CN114356560A (zh) | 2022-04-15 |
CN114356560B true CN114356560B (zh) | 2022-09-16 |
Family
ID=81101934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111589020.3A Active CN114356560B (zh) | 2021-12-23 | 2021-12-23 | 资源对象获取方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356560B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093513A (zh) * | 2007-08-14 | 2007-12-26 | 金蝶软件(中国)有限公司 | 一种用于解决计算机软件多语言支持问题的方法和系统 |
CN101110043A (zh) * | 2007-09-04 | 2008-01-23 | 杭州华三通信技术有限公司 | 一种多核系统的资源管理方法和控制核 |
CN101655821A (zh) * | 2009-08-04 | 2010-02-24 | 中兴通讯股份有限公司 | 一种解决地址空间映射哈希地址冲突的方法及装置 |
CN102402622A (zh) * | 2011-12-27 | 2012-04-04 | 北京人大金仓信息技术股份有限公司 | 嵌入式内存数据库的内存页面管理调度方法 |
CN113051268A (zh) * | 2021-03-19 | 2021-06-29 | 中国工商银行股份有限公司 | 数据查询方法、数据查询装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818303B2 (en) * | 2008-01-29 | 2010-10-19 | Microsoft Corporation | Web graph compression through scalable pattern mining |
-
2021
- 2021-12-23 CN CN202111589020.3A patent/CN114356560B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093513A (zh) * | 2007-08-14 | 2007-12-26 | 金蝶软件(中国)有限公司 | 一种用于解决计算机软件多语言支持问题的方法和系统 |
CN101110043A (zh) * | 2007-09-04 | 2008-01-23 | 杭州华三通信技术有限公司 | 一种多核系统的资源管理方法和控制核 |
CN101655821A (zh) * | 2009-08-04 | 2010-02-24 | 中兴通讯股份有限公司 | 一种解决地址空间映射哈希地址冲突的方法及装置 |
CN102402622A (zh) * | 2011-12-27 | 2012-04-04 | 北京人大金仓信息技术股份有限公司 | 嵌入式内存数据库的内存页面管理调度方法 |
CN113051268A (zh) * | 2021-03-19 | 2021-06-29 | 中国工商银行股份有限公司 | 数据查询方法、数据查询装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114356560A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992577B (zh) | 一种哈希表数据冲突处理方法及装置 | |
CN110399333B (zh) | 删除快照的方法、设备和计算机程序产品 | |
CN108897859A (zh) | 一种元数据检索方法、装置、设备及计算机可读存储介质 | |
US11269843B2 (en) | Object storage method and object storage gateway | |
CN112560114A (zh) | 调用智能合约的方法及装置 | |
CN110019873A (zh) | 人脸数据处理方法、装置及设备 | |
CN114780537A (zh) | 流表存储及报文转发方法、装置、计算设备及介质 | |
US20160299834A1 (en) | State storage and restoration device, state storage and restoration method, and storage medium | |
CN114490060A (zh) | 内存分配方法、装置、计算机设备和计算机可读存储介质 | |
US9875248B2 (en) | System and method for identifying a file path using tree data structure | |
CN114356560B (zh) | 资源对象获取方法及系统 | |
CN108111598B (zh) | 云盘数据的下发方法、装置及存储介质 | |
CN109255238B (zh) | 终端威胁检测与响应方法及引擎 | |
CN111694835B (zh) | 物流电子面单的号段存取方法及系统、设备及存储介质 | |
CN111026762A (zh) | 红黑树索引生成方法、装置、电子设备及存储介质 | |
CN113132241B (zh) | Acl模板动态配置方法及装置 | |
CN114896215A (zh) | 元数据的存储方法及装置 | |
CN109725856B (zh) | 一种共享节点管理方法、装置、电子设备及存储介质 | |
CN110825521B (zh) | 一种内存使用管理方法、装置及存储介质 | |
CN111399753A (zh) | 写入图片的方法和装置 | |
CN109144740A (zh) | 一种分布式锁实现方法和装置 | |
CN113923176B (zh) | 即时通讯的消息撤回方法、装置、设备及计算机可读介质 | |
CN113342275B (zh) | 区块链节点存取数据的方法、设备和计算机可读存储介质 | |
CN115292623A (zh) | 一种链接异常检测方法及装置 | |
CN107305582A (zh) | 一种元数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |