CN110879747B - 资源管理方法及装置 - Google Patents

资源管理方法及装置 Download PDF

Info

Publication number
CN110879747B
CN110879747B CN201811033844.0A CN201811033844A CN110879747B CN 110879747 B CN110879747 B CN 110879747B CN 201811033844 A CN201811033844 A CN 201811033844A CN 110879747 B CN110879747 B CN 110879747B
Authority
CN
China
Prior art keywords
resource
program execution
execution unit
reference count
identifier
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
Application number
CN201811033844.0A
Other languages
English (en)
Other versions
CN110879747A (zh
Inventor
应鸿浩
王灵超
李磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN201811033844.0A priority Critical patent/CN110879747B/zh
Publication of CN110879747A publication Critical patent/CN110879747A/zh
Application granted granted Critical
Publication of CN110879747B publication Critical patent/CN110879747B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5022Mechanisms to release resources

Abstract

本发明公开了一种资源管理方法及装置,属于计算机技术领域。本申请提供了一种基于资源管理对象对计算机设备中的各个资源进行管理的通用管理机制,通过将创建的资源在资源管理对象中注册,生成该资源对应的资源标识,将资源标识作为判断对应的资源是否可供程序执行单元操作的依据,共享资源的所有程序执行单元在使用资源前,仅会持有资源的资源标识,而不会持有资源的资源指针,也就无法通过持有的资源指针随意地访问资源以及删除资源,因此能够避免程序执行单元访问已删除的资源、资源遗漏删除、资源重复删除等问题。

Description

资源管理方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种资源管理方法及装置。
背景技术
在计算机技术领域中,计算机中的文件、传输控制协议(Transmission ControlProtocol,简称:TCP)连接、内存等可以认为是计算机的资源,计算机需要合理地管理资源,以保证计算机的正常运行。
任一资源的生命周期包括创建-使用-删除等阶段,在创建阶段,任一线程可以在计算机的某段存储地址创建资源,得到指向该存储地址的资源指针,将该资源指针通知给其他需要使用该资源的线程。在使用阶段,任一持有资源指针的线程可以基于资源指针访问资源,从而使用资源。在删除阶段,任一持有资源指针的线程可以基于资源指针请求终端删除资源,终端会删除该资源指针对应的资源。
目前的终端中缺乏对各个资源的通用管理机制,任一线程均可通过持有的资源指针,随意地访问资源以及删除资源,容易引发线程访问已删除的资源、资源遗漏删除、资源重复删除等问题。
发明内容
本发明实施例提供了一种资源管理方法及装置,能够解决相关技术中缺乏对各个资源的通用管理机制问题。所述技术方案如下:
第一方面,提供了一种资源管理方法,所述方法包括:
将创建的资源在资源管理对象中注册;
生成所述资源对应的资源标识,所述资源标识为判断其对应的资源是否可供程序执行单元操作的依据;
在资源管理对象中存储所述资源的资源指针和资源标识;
向一个或多个程序执行单元发送所述资源的资源标识。
本发明实施例提供的方法,提供了一种基于资源管理对象对计算机设备中的各个资源进行管理的通用管理机制,通过将创建的资源在资源管理对象中注册,生成该资源对应的资源标识,将资源标识作为判断对应的资源是否可供程序执行单元操作的依据,共享资源的所有程序执行单元在使用资源前,仅会持有资源的资源标识,而不会持有资源的资源指针,也就无法通过持有的资源指针随意地访问资源以及删除资源,因此能够避免程序执行单元访问已删除的资源、资源遗漏删除、资源重复删除等问题。
可选地,所述向多个程序执行单元发送所述资源的资源标识之后,所述方法还包括:
当任一程序执行单元请求对所述资源进行操作时,获取所述程序执行单元持有的所述资源对应的资源标识;
获取所述资源管理对象存储的所述资源对应的资源标识;
基于所述程序执行单元持有的资源标识和所述资源管理对象存储的资源标识,确认所述程序执行单元是否能够对所述资源进行操作;
向所述程序执行单元返回确认信息。
可选地,所述资源或资源的包装对象的内部含有引用计数,所述资源创建时引用计数设置为N,其中N为大于或等于1的自然数;当所述资源管理对象确认可以对所述资源进行操作后;当所述操作类型为访问资源时,所述方法还包括:
所述资源管理对象向所述程序执行单元发送所述资源的资源指针;
所述程序执行单元递增所述资源的引用计数;
当所述程序执行单元对所述资源的当次访问结束时,递减所述资源的引用计数;
每次递增和递减引用计数的幅度相同。
可选地,所述资源或资源的包装对象的内部含有引用计数,所述资源创建时引用计数设置为N,其中N为大于或等于1的自然数;当所述资源管理对象确认可以对所述资源进行操作后;当所述操作类型为删除资源时,所述方法还包括:
所述资源管理对象修改所述资源的资源标识并存储;
递减所述资源的引用计数;
每次递增和递减引用计数的幅度相同。
可选地,当所述资源的引用计数小于N时,释放所述资源。
可选地,所述资源标识包括所对应资源的标识信息和版本信息。
可选地,所述基于所述程序执行单元持有的资源标识和所述资源管理对象存储的资源标识,确认所述程序执行单元是否能够对所述资源进行操作,包括:
获取所述程序执行单元持有的资源标识的版本信息以及所述资源管理对象存储的资源标识的版本信息,得到两个版本信息;
当所述两个版本信息一致时,确认所述程序执行单元能够对所述资源进行操作。
可选地,所述方法还包括:
当任一程序执行单元请求对所述资源进行操作时,对所述资源管理对象进行加锁;
可选地,所述向所述程序执行单元返回确认信息之后,所述方法还包括:
对所述资源管理对象进行解锁。
可选地,所述当任一程序执行单元请求对所述资源进行操作时,对所述资源管理对象进行加锁,包括:
当任一程序执行单元请求对所述资源进行访问时,对所述资源管理对象进行加锁;和/或,
当任一程序执行单元请求删除所述资源时,对所述资源管理对象进行加锁。
可选地,所述将创建的资源在资源管理对象中注册之前,所述方法还包括:
对所述资源管理对象进行加锁。
可选地,所述对所述资源管理对象进行加锁,包括:
将所述资源管理对象的属性从可读写修改为只读;
可选地,所述向一个或多个程序执行单元发送所述资源的资源标识之后,所述方法还包括:
对所述资源管理对象进行解锁。
可选地所述对所述资源管理对象进行解锁,包括:
将所述资源管理对象的属性从只读修改为可读写;
第二方面,提供了一种资源管理装置,所述装置包括:
注册模块,用于注册程序执行单元创建的资源;
生成模块,用于生成所述资源对应的资源标识,所述资源标识为判断其对应的资源是否可供程序执行单元操作的依据;
存储模块,用于存储所述资源的资源标识;
发送模块,用于向一个或多个程序执行单元发送所述资源的资源标识。
可选地,所述装置还包括:
获取模块,用于当任一程序执行单元请求对所述资源进行操作时,获取所述程序执行单元持有的所述资源对应的资源标识;
所述获取模块,还用于获取所述存储模块存储的所述资源对应的资源标识;
确认模块,用于基于所述程序执行单元持有的资源标识和所述资源管理对象存储的资源标识,确认所述程序执行单元是否能够对所述资源进行操作;
所述发送模块,还用于向所述程序执行单元返回确认信息。
可选地,所述资源或资源的包装对象的内部含有引用计数,所述资源创建时引用计数设置为N,其中N为大于或等于1的自然数;当所述资源管理装置确认可以对所述资源进行操作后;当所述操作类型为访问资源时,所述发送模块,还用于所述资源管理对象向所述程序执行单元发送所述资源的资源指针;
所述装置还包括:程序执行单元,用于递增所述资源的引用计数;
所述程序执行单元,用于当所述程序执行单元对所述资源的当次访问结束时,递减所述资源的引用计数;每次递增和递减引用计数的幅度相同。
可选地,所述资源或资源的包装对象的内部含有引用计数,所述资源创建时引用计数设置为N,其中N为大于或等于1的自然数;当所述资源管理装置确认可以对所述资源进行操作后;当所述操作类型为删除资源时,所述装置还包括:
修改模块,用于修改所述资源的资源标识并存储;
所述装置还包括:程序执行单元,用于递减所述资源的引用计数;每次递增和递减引用计数的幅度相同。
可选地,所述装置还包括:当所述资源的引用计数小于N时,释放所述资源。
可选地,所述资源标识包括所对应资源的标识信息和版本信息。
可选地,所述确认模块,用于获取所述程序执行单元持有的资源标识的版本信息以及所述资源管理对象存储的资源标识的版本信息,得到两个版本信息;当所述两个版本信息一致时,确认所述程序执行单元能够对所述资源进行操作。
第三方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现上述第一方面以及第一方面的任一种可选方式中的资源管理方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由所述处理器加载并执行以实现上述第一方面以及第一方面的任一种可选方式中的资源管理方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种资源管理方法的示意图;
图2是本发明实施例提供的一种资源管理方法的流程图;
图3是本发明实施例提供的一种资源管理装置的结构示意图;
图4是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种资源管理方法的流程图,参见图1,该方法包括以下步骤:
101、将创建的资源在资源管理对象中注册。
102、生成该资源对应的资源标识,该资源标识为判断其对应的资源是否可供程序执行单元操作的依据。
103、在资源管理对象中存储该资源的资源指针和资源标识。
104、向一个或多个程序执行单元发送该资源的资源标识。
本发明实施例提供的方法,提供了一种基于资源管理对象对计算机设备中的各个资源进行管理的通用管理机制,通过将创建的资源在资源管理对象中注册,生成该资源对应的资源标识,将资源标识作为判断对应的资源是否可供程序执行单元操作的依据,共享资源的所有程序执行单元在使用资源前,仅会持有资源的资源标识,而不会持有资源的资源指针,也就无法通过持有的资源指针随意地访问资源以及删除资源,因此能够避免程序执行单元访问已删除的资源、资源遗漏删除、资源重复删除等问题。
可选地,该向多个程序执行单元发送该资源的资源标识之后,该方法还包括:
当任一程序执行单元请求对该资源进行操作时,获取该程序执行单元持有的该资源对应的资源标识;
获取该资源管理对象存储的该资源对应的资源标识;
基于该程序执行单元持有的资源标识和该资源管理对象存储的资源标识,确认该程序执行单元是否能够对该资源进行操作;
向该程序执行单元返回确认信息。
可选地,该资源或资源的包装对象的内部含有引用计数,该资源创建时引用计数设置为N,其中N为大于或等于1的自然数;当该资源管理对象确认可以对该资源进行操作后;当该操作类型为访问资源时,该方法还包括:
该资源管理对象向该程序执行单元发送该资源的资源指针;
该程序执行单元递增该资源的引用计数;
当该程序执行单元对该资源的当次访问结束时,递减该资源的引用计数;
每次递增和递减引用计数的幅度相同。
可选地,该资源或资源的包装对象的内部含有引用计数,该资源创建时引用计数设置为N,其中N为大于或等于1的自然数;当该资源管理对象确认可以对该资源进行操作后;当该操作类型为删除资源时,该方法还包括:
该资源管理对象修改该资源的资源标识并存储;
递减该资源的引用计数;
每次递增和递减引用计数的幅度相同。
可选地,当该资源的引用计数小于N时,释放该资源。
可选地,该资源标识包括所对应资源的标识信息和版本信息。
可选地,该基于该程序执行单元持有的资源标识和该资源管理对象存储的资源标识,确认该程序执行单元是否能够对该资源进行操作,包括:
获取该程序执行单元持有的资源标识的版本信息以及该资源管理对象存储的资源标识的版本信息,得到两个版本信息;
当该两个版本信息一致时,确认该程序执行单元能够对该资源进行操作。
可选地,该方法还包括:
当任一程序执行单元请求对该资源进行操作时,对该资源管理对象进行加锁;
可选地,该向该程序执行单元返回确认信息之后,该方法还包括:
对该资源管理对象进行解锁。
可选地,该当任一程序执行单元请求对该资源进行操作时,对该资源管理对象进行加锁,包括:
当任一程序执行单元请求对该资源进行访问时,对该资源管理对象进行加锁;和/或,
当任一程序执行单元请求删除该资源时,对该资源管理对象进行加锁。
可选地,该将创建的资源在资源管理对象中注册之前,该方法还包括:
对该资源管理对象进行加锁。
可选地,该向一个或多个程序执行单元发送该资源的资源标识之后,该方法还包括:
对该资源管理对象进行解锁。
相关技术中,任一线程均可持有资源指针,基于资源指针随意地访问资源以及删除资源,引发线程访问已删除的资源、资源遗漏删除、资源重复删除等问题。
而本发明实施例中,设计了一种基于资源管理对象对计算机设备的各个资源进行管理的方法,资源管理对象可以提供为计算机设备中的资源管理器,任一程序执行单元在创建资源时,都会将资源在资源管理对象中注册,任一程序执行单元在使用资源前仅会持有资源标识,每次要使用资源时要通过资源标识请求资源指针,通过程序执行单元持有的资源标识,确认程序执行单元可以操作资源时,才会将资源管理对象存储的资源指针返回给程序执行单元,从而保证资源指针的安全性,避免了程序执行单元通过已删除的资源的资源指针,来访问已删除的资源的问题。
本发明实施例可以应用在软件开发、操作系统开发等场景中,可以将本发明实施例提供的方法作为软件乃至计算机设备的每个程序执行单元的处理逻辑,开发人员只需按照本发明实施例提供的方法,编写每个程序执行单元的处理逻辑,每个程序执行单元基于这种处理逻辑运行时,不会出现资源泄漏、资源重复删除、访问已经被删除的资源等严重问题,提高了软件质量,降低了维护软件的成本,提高了生产力。
图2是本发明实施例提供的一种资源管理方法的流程图,该发明实施例的执行主体为计算机设备,该计算机设备可以为计算机、手机、平板电脑等,参见图2,该方法包括:
201、计算机设备将创建的资源在资源管理对象中注册。
资源可以包括文件、TCP连接、Socket(套接字)、内存等,资源会在计算机设备中占用一定的存储地址,资源指针指向资源在计算机设备中的存储地址资源可以由程序执行单元创建。
程序执行单元是指计算机设备中可以独立运行的调度单位。例如,程序执行单元可以为线程、进程或协程等。
当任一程序执行单元创建任一资源时,资源管理对象可以注册该资源,以便管理该资源的资源标识和资源指针。可选地,程序执行单元可以将该资源的资源指针发送给资源管理对象,则资源管理对象会获取到资源的资源指针。其中,资源指针指向资源的存储地址,通过资源指针可以访问资源的存储地址。举例来说,资源指针可以指向资源的虚拟地址或资源的物理地址。
可选地,在资源管理对象中注册资源的过程可以包括以下两种方式。
方式一(调用接口)资源管理对象可以向各个程序执行单元提供注册接口,当任一程序执行单元注册资源时,可以调用资源管理对象的注册接口,向该注册接口传入资源指针,则资源管理对象会获取程序执行单元向注册接口传入的资源指针,获知该程序执行单元具有注册资源的需求。
方式二(发送指令)当任一程序执行单元要注册资源时,可以生成资源指针注册指令,该资源指针注册指令携带资源指针,用于指示程序执行单元要注册资源,程序执行单元可以向资源管理对象发送资源指针注册指令,资源管理对象接收到资源指针注册指令时,可以解析该资源指针注册指令得到资源指针。
202、计算机设备生成资源对应的资源标识,资源标识为判断其对应的资源是否可供程序执行单元操作的依据。
可选地,资源标识可以用于唯一确定对应的资源。例如,不同资源的资源标识可以不同。
可选地,资源标识可以用于标识资源的身份和版本。例如,资源标识可以包括标识信息和版本信息。标识信息用于标识资源的身份,通过标识信息可以确定对应的资源。举例来说,标识信息可以为数字、字母或字符串等。版本信息用于标识资源的版本。版本信息能够验证对应资源是否已经失效,即对应资源是否已经被请求删除。举例来说,版本信息可以为数字、字母或字符串等。
可选地,资源标识可以采用结构体的形式实现,资源标识和版本信息为结构体中的两个数字。其中,该结构体可以为数组(array)、List(列表)或set(集合)等,当结构体为数组时,标识信息可以为数组的下标。当然资源标识也可以采用任意程序语言中其他类型的数据结构实现,本实施例对此不做限定。
针对生成资源标识的具体过程,可选地,计算机设备可以获取标识信息以及版本信息,将标识信息和版本信息组成资源标识。关于获取标识信息的过程,计算机设备可以为创建的每个资源顺序编号,当得到某个资源指针时,确定该资源在已创建的所有资源中的序号,将该序号作为该资源的标识信息。关于生成版本信息的过程,计算机设备可以预先设置创建资源时资源的版本信息,例如统一设置创建某个资源时该资源的版本信息为1。当然计算机设备也可以采用其他方式为资源生成标识信息和版本信息,本实施例对生成标识信息和版本信息的具体过程不做限定。
203、计算机设备在资源管理对象中存储资源的资源指针和资源标识。
资源管理对象可以将资源指针和资源标识对应存储。可选地,资源管理对象中可以存储资源指针和资源标识之间的映射关系,资源管理对象可以向该映射关系中写入资源的资源指针和资源标识,从而对资源指针和资源标识进行对应存储。
通过在资源管理对象中存储资源的资源指针和资源标识,能够保证后续过程中当程序执行单元发送资源标识时,可以根据资源标识,确定资源标识对应的资源指针。
204、计算机设备向一个或多个程序执行单元发送资源的资源标识。
通过向一个或多个程序执行单元发送资源标识,当程序执行单元接收到资源标识后,即可持有资源标识。如此,程序执行单元后续要使用资源时,即可通过资源标识请求资源管理对象中的资源指针,以便通过资源指针使用资源。程序执行单元后续要删除资源时,即可通过资源标识请求删除资源。
可选地,发送资源标识的过程可以包括以下两种方式:
方式一、可以向创建资源的程序执行单元发送资源标识,由该程序执行单元向其他程序执行单元广播该资源的资源标识。当程序执行单元接收到资源标识后,后续要使用资源时即可通过资源标识请求资源管理对象的资源标识。另外,程序执行单元可以向其他程序执行单元通知该资源标识,那么,每个具有使用资源的需求的程序执行单元均会持有资源标识,可以通过资源标识请求资源管理对象中的资源指针,进而请求对资源进行操作。
方式二、资源标识可以配置为共享对应资源的多个程序执行单元的全局变量,当任一程序执行单元创建资源,计算机设备生成了资源的资源标识时,可以对资源标识进行赋值,则每个程序执行单元均得到了资源标识。
关于向创建资源的程序执行单元发送资源标识的方式,可选地,当程序执行单元在上述步骤201中以调用资源管理对象的注册接口的方式传入资源标识时,计算机设备可以直接返回资源标识,则对于程序执行单元,资源标识为该程序执行单元调用一次资源注册接口的结果。而当程序执行单元在上述步骤201中以发送资源标识获取指令的方式发送资源标识时,计算机设备可以生成资源标识响应消息,在该资源标识响应消息中携带资源标识,向程序执行单元返回该资源标识响应消息,程序执行单元可以接收该资源标识响应消息,解析该资源标识响应消息,得到携带的资源标识。
通过执行上述步骤201-步骤204,当任一资源创建后,该资源的资源指针会存储在资源管理对象中,共享资源的所有程序执行单元在使用资源前,仅会持有该资源的资源标识,而不会持有资源的资源指针。那么,每个程序执行单元也就无法通过持有的资源指针,随意地访问资源以及删除资源,也就不会产生访问已删除的资源、资源遗漏删除、资源重复删除等问题。
综上所述,上述步骤201-步骤204阐述了资源注册的具体流程,在上述步骤201-204后,资源管理对象中存储了资源的资源标识和资源指针。可选地,在执行上述步骤201-204后,可以通过以下步骤205至步骤208,在注册资源后对资源进行操作。
205、当任一程序执行单元请求对该资源进行操作时,计算机设备获取该程序执行单元持有的该资源对应的资源标识。
当任一程序执行单元请求对资源进行操作时,都要通过持有的资源对应的资源标识,向计算机设备请求该资源的资源指针,则计算机设备会获取程序执行单元持有的资源对应的资源标识。
方式一(调用接口)资源管理对象可以向各个程序执行单元提供资源指针获取接口,当任一程序执行单元要获取资源的资源指针时,可以调用资源管理对象的资源指针获取接口,向该资源指针获取接口传入资源标识,则计算机设备可以获取程序执行单元向资源管理对象的资源指针获取接口传入的资源标识。
方式二(发送指令)当任一程序执行单元要获取资源时,可以生成资源指针获取指令,该资源指针注册指令携带资源标识,指示计算机设备注册资源,程序执行单元可以向计算机设备发送资源指针获取指令,则计算机设备接收到资源指针获取指令时,可以获知该程序执行单元具有对资源进行操作的需求,解析该资源指针获取指令,得到资源指针获取指令携带的资源标识。
206、计算机设备获取资源管理对象存储的资源对应的资源标识。
可选地,计算机设备可以根据程序执行单元持有的资源标识,从资源标识中获取标识信息,基于标识信息在资源管理对象中查询,判断资源管理对象中存储的每个资源标识是否包含标识信息,当任一资源标识包含标识信息时,将该资源标识作为资源对应的资源标识。其中,该查询方式可以包括遍历法、二分法或者其他查询方法,在此不做限定。
207、计算机设备基于该程序执行单元持有的资源标识和该资源管理对象存储的资源标识,确认该程序执行单元是否能够对该资源进行操作。
可选地,计算机设备可以判断程序执行单元持有的资源标识和资源管理对象存储的资源标识是否一致,当两个资源标识一致时,确认该程序执行单元能够对该资源进行操作,当两个资源标识不一致时,确认该程序执行单元不能对该资源进行操作。
可选地,计算机设备可以获取该程序执行单元持有的资源标识的版本信息以及该资源管理对象存储的资源标识的版本信息,得到两个版本信息。计算机设备可以判断程序执行单元持有的资源标识的版本信息和资源管理对象存储的资源标识的版本信息是否一致,当该两个版本信息一致时,确认该程序执行单元能够对该资源进行操作,当两个资源标识的版本信息不一致时,确认该程序执行单元不能对该资源进行操作。
举例来说,假设资源为计算机设备中的某个文件,资源管理对象存储的该文件的资源标识中标识信息为word1,版本信息为5。当程序执行单元请求对该文件进行操作时,获取该程序执行单元持有的资源标识,若确定程序执行单元持有的资源标识中标识信息为word1,版本信息为4,则确认该程序执行单元不能对该文件进行操作。若确定程序执行单元持有的资源标识中标识信息为word1,版本信息为5,则确认该程序执行单元能对该文件进行操作。
208、计算机设备向该程序执行单元返回确认信息。
本步骤208可以包括以下方式(1)至方式(2)。
方式(1)当计算机设备基于该程序执行单元持有的资源标识和该资源管理对象存储的资源标识,确认该程序执行单元能够对该资源进行操作时,向程序执行单元返回资源的资源指针。
可选地,当程序执行单元在上述步骤中以调用资源管理对象的资源指针获取接口的方式传入资源标识时,计算机设备可以直接返回资源标识,则对于程序执行单元,资源标识为该程序执行单元调用一次资源指针获取接口的结果。而当程序执行单元在上述步骤中以发送资源指针获取指令的方式发送资源标识时,计算机设备可以生成资源指针响应消息,在该资源指针响应消息中携带资源指针,向程序执行单元返回该资源指针响应消息,程序执行单元可以接收该资源指针响应消息,解析该资源指针响应消息,得到携带的资源指针。
可选地,方式(1)以程序执行单元对资源进行一次操作的过程为例进行说明,后续过程中,当该程序执行单元要再次对资源进行操作时,需要重复执行上述步骤,再次通过持有的资源对应的资源标识,重新向资源管理对象请求资源的资源指针。
可选地,可以采用引用计数机制,后续通过引用计数机制,进一步避免不同程序执行单元对资源的操作产生的冲突。
具体来说,资源或资源的包装对象的内部可以含有引用计数,引用计数用于指示当前对资源进行操作的程序执行单元的数量。资源创建时引用计数设置为N,其中N为大于或等于1的自然数。举例来说,资源创建时引用计数可以设置为1。
可选地,当任一程序执行单元创建资源时,该程序执行单元可以设置资源的引用计数为N。其中,有的资源原生不具有引用计数,例如TCP连接等,当这种资源创建时,可以为该资源定义一个包装对象,资源的包装对象包含资源本身和引用计数,程序执行单元可以将资源的包装对象中的引用计数设置为N。
可选地,方式(1)中,当该资源管理对象确认可以对该资源进行操作后,如果程序执行单元对资源的操作类型为访问资源时,资源管理对象可以向程序执行单元发送该资源的资源指针,程序执行单元递增该资源的引用计数,当该程序执行单元对该资源的当次访问结束时,递减该资源的引用计数。
其中,每次递增和递减引用计数的幅度可以相同,从而保证每个程序执行单元在访问资源前的资源的引用计数和访问资源结束时资源的引用计数保持一致。例如,每次递增和递减引用计数的幅度可以是1,则对于任一程序执行单元来说,当该程序执行单元接收到资源的资源指针,开始访问资源时,会将资源的引用计数加一,当该程序执行单元访问资源结束时,会将资源的引用计数减一,因此资源的引用计数最终保持不变。
可选地,可以为每个资源提供引用计数递增方法,引用计数递增方法用于递增对应资源的引用计数,当程序执行单元接收到某个资源的资源指针后,可以调用该资源的引用计数递增方法,按照递增引用计数的幅度,对资源的引用计数递增。
以资源创建时引用计数为1,每次递增引用计数的幅度为1为例,对于任一资源来说,若当前时间点没有程序执行单元对该资源进行操作,则该资源的引用计数等于该资源创建时的引用计数,该资源的引用计数为1。若当前时间点存在m个程序执行单元对该资源进行操作,则该资源的引用计数等于该资源创建时的引用计数和对该资源进行操作的程序执行单元的数量,该资源的引用计数为N+m=m+1。另外,如果当前存在m个程序执行单元对资源进行操作,此时又有新的某个程序执行单元得到了资源的资源指针,对资源进行操作时,则资源的引用计数会从m+1递增为m+2。
可选地,可以为每个资源提供引用计数递减方法,引用计数递减方法用于递减对应资源的引用计数,当程序执行单元对资源的当次访问结束后,可以调用该资源的引用计数递减方法,按照递减引用计数的幅度,对资源的引用计数递减。
以资源创建时引用计数为1,每次递减引用计数的幅度为1为例,对于任一资源来说,若当前存在m个程序执行单元对资源进行操作,此时该m个程序执行单元中任一程序执行单元对资源的当次访问结束后,可以调用该资源的引用计数递减方法,按照1对资源的引用计数递减,则资源的引用计数会从m+递减为m。
可选地,方式(1)中,当该资源管理对象确认可以对该资源进行操作后,如果程序执行单元对资源的操作类型为删除资源时,该资源管理对象修改该资源的资源标识并存储;递减该资源的引用计数;每次递增和递减引用计数的幅度相同。
具体来说,当任一程序执行单元请求删除资源时,会获取程序执行单元持有的资源对应的资源标识,获取该资源管理对象存储的该资源对应的资源标识,基于程序执行单元持有的资源标识和资源管理对象的资源标识确认资源是否已经被请求删除,当该资源管理对象确认资源尚未被请求删除后,如果程序执行单元对资源的操作类型为删除资源时,资源管理对象修改该资源的资源标识并存储。
可选地,程序执行单元请求删除资源时,获取程序执行单元持有的资源对应的资源标识的过程具体可以包括以下两种方式。
方式一(调用接口)资源管理对象可以向各个程序执行单元提供资源删除接口,当任一程序执行单元要删除资源时,可以调用资源管理对象的资源删除接口,向该资源删除接口传入资源标识,则计算机设备可以获取程序执行单元向资源管理对象的资源删除接口传入的资源标识,获知该程序执行单元具有删除资源的需求。
方式二(发送指令)当任一程序执行单元要删除资源时,可以生成资源删除指令,该资源删除指令携带资源标识,指示删除对应的资源,程序执行单元可以向计算机设备发送资源删除指令,则计算机设备接收到资源删除指令时,可以获知该程序执行单元具有删除资源的需求,通过解析该资源删除指令得到资源标识。
关于修改资源标识的方式,可选地,可以对资源管理对象存储的资源标识的版本号进行修改,而无需修改资源管理对象存储的资源标识的资源身份标识。其中,可以采用递增版本号、递减版本号或者任一种方式对版本号进行修改,只需保证修改后的版本号与修改前的版本号不同即可。
当程序执行单元对资源的操作类型为删除资源时,通过资源管理对象修改该资源的资源标识并存储,如果之后任一程序执行单元通过持有的资源标识请求资源的资源指针时,由于程序执行单元持有的资源标识和资源管理对象的资源标识不一致,则会请求失败,不会得到资源的资源指针,从而保证不会访问到已被请求删除的资源。同理地,如果任一程序执行单元通过持有的资源标识再次请求删除资源时,由于程序执行单元持有的资源标识和资源管理对象的资源标识不一致,也会请求失败,保证资源不会重复删除。
关于递减资源的引用计数的方式,删除资源时对资源的引用计数递减的幅度可以和访问资源时对资源的引用计数递增的幅度相等。另外,删除资源时对资源的引用计数递减的幅度可以和对资源的当次访问结束时对资源的引用计数递减的幅度相等。可选地,删除资源时对资源的引用计数递减的幅度可以是1。
可选地,对资源的引用计数递减可以为对资源包含的引用计数递减,或将资源的包装对象包含的引用计数递减:对于计算机设备中的各个资源,有的资源为原生具有引用计数的对象,即资源创建时即包含引用计数,程序执行单元可以直接将资源包含的引用计数递减。而有的资源原生不具有引用计数,例如TCP连接等,当这种资源创建时,计算机设备可以为该资源定义一个包装对象,资源的包装对象包含资源本身和引用计数,程序执行单元可以将资源的包装对象中的引用计数递减。
可选地,可以当该资源的引用计数小于N时,释放该资源。具体来说,当任一程序执行单元对资源的引用计数递减时,可以判断资源的引用计数是否小于N。当引用计数小于N时,表明该资源已经被程序执行单元请求删除,且当前不存在正在使用资源的程序执行单元,则程序执行单元直接释放资源。当引用计数不为0时,表明该资源尚未被任意程序执行单元请求删除,或者当前存在正在使用资源的程序执行单元,则退出流程。
以资源创建时引用计数为1,,递增和递减引用计数的幅度为1为例,以下对引用计数的机制至少可以达到的效果进行描述:
多个程序执行单元可以共享某个资源,例如假设程序执行单元A和程序执行单元B共享某一资源,在程序执行单元A使用资源的过程中,程序执行单元B请求删除该资源,如果程序执行单元B直接删除该资源,会导致程序执行单元A无法访问资源,引发程序执行单元A的崩溃。
而通过设计引用计数机制,由于资源创建时引用计数为1,通过在得到资源指针时将引用计数加一,能够保证在该程序执行单元使用资源的过程中,当另一程序执行单元成功请求删除资源时,由于引用计数减一后最少也为1,而不会为0,因此不会被立即删除,那么,不会出现某个程序执行单元访问资源的过程中,由于资源被其他程序执行单元删除,导致正在访问资源的程序执行单元崩溃的情况。
具体来说,当程序执行单元A得到资源的资源指针从而使用资源时,引用计数会由1递增为2,则当程序执行单元B请求删除该资源,引用计数会由2递减为1,此时由于引用计数非0,程序执行单元B并不会删除资源,程序执行单元A仍可正常使用资源。而当程序执行单元A使用资源完毕时,会将引用计数从1递减为0,此时程序执行单元A会删除该资源,以免过早删除资源时引发程序执行单元A的崩溃。进一步地,当N个程序执行单元正在使用资源时,假设某一个程序执行单元请求删除该资源,这N个程序单元中最后一个结束使用资源的程序执行单元会将引用计数递减为0,则最后一个结束使用资源的程序执行单元会删除该资源,在保证资源能够及时删除的基础上,避免不同程序执行单元对同一资源的动作产生冲突的情况,不会影响正在使用资源的程序执行单元的活动。
方式(2)当计算机设备基于该程序执行单元持有的资源标识和该资源管理对象存储的资源标识,确认该程序执行单元不能够对该资源进行操作时,拒绝返回资源指针。
可选地,可以向程序执行单元返回错误提示消息,错误提示消息用于提示资源已经被请求删除,以便程序执行单元接收到错误提示消息后,获知资源已经被请求删除。
可选地,可以通过对资源管理对象加锁和解锁的机制,进一步保证不同程序执行单元的行为不会发生冲突。具体来说,对资源管理对象加锁和解锁的机制可以包括以下方式一至方式三:
方式一、当任一程序执行单元创建资源时,对资源管理对象进行加锁。在保持资源管理对象为上锁状态的过程中,将创建的资源在资源管理对象中注册,生成该资源对应的资源标识。在资源管理对象中存储该资源的资源指针和资源标识。向一个或多个程序执行单元发送该资源的资源标识,对资源管理对象进行解锁。
可选地,对资源管理对象进行加锁的步骤可以为修改资源管理对象的属性,例如将资源管理对象的属性从可读写修改为只读,从而将资源管理对象在内存中锁定。当对资源管理对象进行加锁后,资源管理对象会进入上锁状态,此时当任意程序执行单元要求访问资源管理对象时,该程序执行单元会阻塞挂起。对资源管理对象进行解锁的步骤可以为修改资源管理对象的属性,例如将资源管理对象从只读修改为可读写。当对资源管理对象进行解锁后,资源管理对象会进入解锁状态,此时程序执行单元可以访问资源管理对象。
可选地,对资源管理对象进行解锁的步骤可以为修改资源管理对象的属性,例如将资源管理对象的属性从只读修改为可读写,从而可以访问内存中的资源管理对象。
可选地,可以将加锁步骤和解锁步骤封装为资源管理对象的注册接口的处理逻辑,任一程序执行单元注册资源时,只需调用与资源管理对象的注册接口,即可自动执行方式一中的加锁过程和解锁过程。
方式二、当任一程序执行单元访问资源时,对资源管理对象进行加锁。在保持资源管理对象为上锁状态的过程中,获取该程序执行单元持有的该资源对应的资源标识。获取该资源管理对象存储的该资源对应的资源标识。基于该程序执行单元持有的资源标识和该资源管理对象存储的资源标识,确认该程序执行单元是否能够对该资源进行操作。向该程序执行单元返回确认信息,对资源管理对象进行解锁。
可选地,对资源管理对象进行加锁的步骤可以为修改资源管理对象的属性,例如将资源管理对象的属性从可读写修改为只读。可选地,对资源管理对象进行解锁的步骤可以为修改资源管理对象的属性,例如将资源管理对象的属性从只读修改为可读写,从而可以访问内存中的资源管理对象。
可选地,可以将加锁步骤和解锁步骤封装为资源管理对象的访问接口的处理逻辑,任一程序执行单元访问资源时,只需调用与资源管理对象的访问接口,即可自动执行方式一中的加锁过程和解锁过程。
方式三、当任一程序执行单元删除资源时,对资源管理对象进行加锁。在保持资源管理对象为上锁状态的过程中,获取该程序执行单元持有的该资源对应的资源标识。获取该资源管理对象存储的该资源对应的资源标识。基于该程序执行单元持有的资源标识和该资源管理对象存储的资源标识,确认该程序执行单元是否能够对该资源进行操作。当该资源管理对象确认可以对该资源进行操作后,且当该操作类型为删除资源时,当该资源的引用计数小于N时,释放该资源。对资源管理对象进行解锁。
可选地,对资源管理对象进行加锁的步骤可以为修改资源管理对象的属性,例如将资源管理对象的属性从可读写修改为只读。可选地,对资源管理对象进行解锁的步骤可以为修改资源管理对象的属性,例如将资源管理对象的属性从只读修改为可读写,从而可以访问内存中的资源管理对象。
可选地,可以将加锁步骤和解锁步骤封装为资源管理对象的删除接口的处理逻辑,任一程序执行单元访问资源时,只需调用与资源管理对象的删除接口,即可自动执行方式一中的加锁过程和解锁过程。
通过加锁机制和解锁机制,可以达到以下技术效果:
在程序执行单元A通过资源管理对象注册资源、访问资源或删除资源的过程中,如果程序执行单元B需要在资源管理对象中注册资源指针、请求资源管理对象中的资源指针、要删除资源管理对象中资源指针对应的资源,或者请求执行其他针对资源管理对象的活动时,如果响应程序执行单元B的请求,可能会与程序执行单元A当前对资源管理对象的操作产生冲突。而通过在资源的注册过程中保持资源管理对象为上锁状态,程序执行单元B需要进行等待,当在程序执行单元A通过资源管理对象注册资源结束后,才会对资源管理对象进行解锁,响应程序执行单元B的请求,从而将程序执行单元A和程序执行单元B并发访问资源管理对象的行为转换为程序执行单元A和程序执行单元B串行访问资源管理对象的行为,可以避免程序执行单元A和程序执行单元B对资源管理对象的活动产生冲突:
本实施例中,当任一程序执行单元持有的资源标识对应的资源尚未失效时,才能通过资源标识得到资源的资源指针,达到以下技术效果:
第一,避免程序执行单元访问到已删除的资源的问题:对于多个程序执行单元共享某资源的场景,无论多少个程序执行单元持有资源标识,当任一程序执行单元成功请求删除资源时,由于资源管理对象存储的资源标识被修改,其他程序执行单元持有的资源标识会与资源管理对象中存储的资源标识不一致,基于持有的资源标识无法成功请求资源的资源指针,也即是,其他程序执行单元持有的资源标识会在资源删除时均失效。由于每个程序执行单元在资源删除后无法得到资源的资源指针,也就无法基于资源指针访问到资源,避免了程序执行单元由于访问到已删除的资源引发崩溃的问题。
第二,加强了计算机设备对每个资源的每次使用过程的控制:本发明实施例中,每个程序执行单元每次要使用资源时,都要向计算机设备请求资源管理对象中的资源指针,当计算机设备确认资源尚未被请求删除时,程序执行单元才可以得到资源指针,进而使用资源,强化了计算机设备的全局控制能力,实现了每个程序执行单元在计算机设备的监控下,井然有序地使用资源的效果。
第三,保证资源的及时删除:计算机设备中可以存在大量的资源,如果资源得不到及时删除,会导致资源泄露,影响应用程序和计算机设备的可用性。而本发明实施例中,每个资源创建后,程序执行单元通过持有的资源标识即可请求删除对应的资源,能够保证资源尽快删除,盘活计算机的效能。
本发明实施例提供的方法,提供了一种基于资源管理对象对计算机设备中的各个资源进行管理的通用管理机制,通过将创建的资源在资源管理对象中注册,生成该资源对应的资源标识,将资源标识作为判断对应的资源是否可供程序执行单元操作的依据,共享资源的所有程序执行单元在使用资源前,仅会持有资源的资源标识,而不会持有资源的资源指针,也就无法通过持有的资源指针随意地访问资源以及删除资源,因此能够避免程序执行单元访问已删除的资源、资源遗漏删除、资源重复删除等问题。
图3是本发明实施例提供的一种资源管理装置的结构示意图。参见图3,该装置包括:注册模块301、生成模块302、存储模块303、发送模块304。
注册模块301,用于注册程序执行单元创建的资源;
生成模块302,用于生成该资源对应的资源标识,该资源标识为判断其对应的资源是否可供程序执行单元操作的依据;
存储模块303,用于存储该资源的资源标识;
发送模块304,用于向一个或多个程序执行单元发送该资源的资源标识。
本发明实施例提供的装置,提供了一种基于资源管理对象对计算机设备中的各个资源进行管理的通用管理机制,通过将创建的资源在资源管理对象中注册,生成该资源对应的资源标识,将资源标识作为判断对应的资源是否可供程序执行单元操作的依据,共享资源的所有程序执行单元在使用资源前,仅会持有资源的资源标识,而不会持有资源的资源指针,也就无法通过持有的资源指针随意地访问资源以及删除资源,因此能够避免程序执行单元访问已删除的资源、资源遗漏删除、资源重复删除等问题。
可选地,该装置还包括:
获取模块,用于当任一程序执行单元请求对该资源进行操作时,获取该程序执行单元持有的该资源对应的资源标识;
该获取模块,还用于获取该存储模块303存储的该资源对应的资源标识;
确认模块,用于基于该程序执行单元持有的资源标识和该资源管理对象存储的资源标识,确认该程序执行单元是否能够对该资源进行操作;
该发送模块304,还用于向该程序执行单元返回确认信息。
可选地,该资源或资源的包装对象的内部含有引用计数,该资源创建时引用计数设置为N,其中N为大于或等于1的自然数;当该资源管理装置确认可以对该资源进行操作后;当该操作类型为访问资源时,该发送模块304,还用于该资源管理对象向该程序执行单元发送该资源的资源指针;
该装置还包括:程序执行单元,用于递增该资源的引用计数;
该程序执行单元,用于当该程序执行单元对该资源的当次访问结束时,递减该资源的引用计数;每次递增和递减引用计数的幅度相同。
可选地,该资源或资源的包装对象的内部含有引用计数,该资源创建时引用计数设置为N,其中N为大于或等于1的自然数;当该资源管理装置确认可以对该资源进行操作后;当该操作类型为删除资源时,该装置还包括:
修改模块,用于修改该资源的资源标识并存储;
该装置还包括:程序执行单元,用于递减该资源的引用计数;每次递增和递减引用计数的幅度相同。
可选地,该装置还包括:当该资源的引用计数小于N时,释放该资源。
可选地,该资源标识包括所对应资源的标识信息和版本信息。
可选地,该确认模块,用于获取该程序执行单元持有的资源标识的版本信息以及该资源管理对象存储的资源标识的版本信息,得到两个版本信息;当该两个版本信息一致时,确认该程序执行单元能够对该资源进行操作。
需要说明的是:上述实施例提供的资源管理装置在管理资源时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的资源管理装置与资源管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图4是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,简称:CPU)401和一个或一个以上的存储器402,其中,存储器402中存储有至少一条指令,至少一条指令由所述处理器401加载并执行以实现上述方法实施例提供的资源管理方法。当然,该计算机设备还可以具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出,该计算机设备还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由计算机设备中的处理器执行以完成上述实施例中的资源管理方法。例如,计算机可读存储介质可以是只读存储器(Read-Only Memory,简称:ROM)、随机存取存储器(Random Access Memory,简称:RAM)、只读光盘(Compact Disc Read-Only Memory,简称:CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种资源管理方法,其特征在于,所述方法包括:
将创建的资源在资源管理对象中注册;
生成所述资源对应的资源标识,所述资源标识为判断其对应的资源是否可供程序执行单元操作的依据,所述资源标识包括所对应资源的标识信息和版本信息,所述程序执行单元为线程、进程或协程;
在资源管理对象中存储所述资源的资源指针和资源标识;
向一个或多个程序执行单元发送所述资源的资源标识;
当任一程序执行单元请求对所述资源进行操作时,获取所述程序执行单元持有的所述资源对应的资源标识;
获取所述资源管理对象存储的所述资源对应的资源标识;
获取所述程序执行单元持有的资源标识的版本信息以及所述资源管理对象存储的资源标识的版本信息,得到两个版本信息;
当所述两个版本信息一致时,确认所述程序执行单元能够对所述资源进行操作;
向所述程序执行单元返回确认信息。
2.根据权利要求1所述的方法,其特征在于,所述资源或资源的包装对象的内部含有引用计数,所述资源创建时引用计数设置为N,其中N为大于或等于1的自然数;当所述资源管理对象确认可以对所述资源进行操作后,当所述操作的类型为访问资源时,所述方法还包括:
向所述程序执行单元发送所述资源管理对象中存储的所述资源的资源指针;
递增所述资源的引用计数;
当所述程序执行单元对所述资源的当次访问结束时,递减所述资源的引用计数;
每次递增和递减引用计数的幅度相同。
3.根据权利要求1所述的方法,其特征在于,所述资源或资源的包装对象的内部含有引用计数,所述资源创建时引用计数设置为N,其中N为大于或等于1的自然数;当所述资源管理对象确认可以对所述资源进行操作后;当所述操作的类型为删除资源时,所述方法还包括:
修改所述资源管理对象中存储的所述资源的资源标识并存储;
递减所述资源的引用计数;
每次递增和递减引用计数的幅度相同。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述资源的引用计数小于N时,释放所述资源。
5.一种资源管理装置,其特征在于,所述装置包括:
注册模块,用于注册程序执行单元创建的资源;
生成模块,用于生成所述资源对应的资源标识,所述资源标识为判断其对应的资源是否可供程序执行单元操作的依据,所述程序执行单元为线程、进程或协程;
存储模块,用于存储所述资源的资源标识;
发送模块,用于向一个或多个程序执行单元发送所述资源的资源标识;
获取模块,用于当任一程序执行单元请求对所述资源进行操作时,获取所述程序执行单元持有的所述资源对应的资源标识;
所述获取模块,还用于获取所述存储模块存储的所述资源对应的资源标识;
确认模块,用于获取所述程序执行单元持有的资源标识的版本信息以及所述资源管理对象存储的资源标识的版本信息,得到两个版本信息;当所述两个版本信息一致时,确认所述程序执行单元能够对所述资源进行操作;
所述发送模块,还用于向所述程序执行单元返回确认信息。
6.根据权利要求5所述的装置,其特征在于,所述资源或资源的包装对象的内部含有引用计数,所述资源创建时引用计数设置为N,其中N为大于或等于1的自然数;当所述资源管理装置确认可以对所述资源进行操作后;当所述操作的类型为访问资源时,所述发送模块,还用于向所述程序执行单元发送所述资源管理对象中存储的所述资源的资源指针;
所述装置还包括:程序执行单元,用于递增所述资源的引用计数;
所述程序执行单元,用于当所述程序执行单元对所述资源的当次访问结束时,递减所述资源的引用计数;每次递增和递减引用计数的幅度相同。
7.根据权利要求5所述的装置,其特征在于,所述资源或资源的包装对象的内部含有引用计数,所述资源创建时引用计数设置为N,其中N为大于或等于1的自然数;当所述资源管理装置确认可以对所述资源进行操作后;当所述操作的类型为删除资源时,所述装置还包括:
修改模块,用于修改所述资源的资源标识并存储;
所述装置还包括:程序执行单元,用于递减所述资源的引用计数;每次递增和递减引用计数的幅度相同。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:当所述资源的引用计数小于N时,释放所述资源。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现权利要求1-4中任一项所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4中任一项所述的方法步骤。
CN201811033844.0A 2018-09-05 2018-09-05 资源管理方法及装置 Active CN110879747B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811033844.0A CN110879747B (zh) 2018-09-05 2018-09-05 资源管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811033844.0A CN110879747B (zh) 2018-09-05 2018-09-05 资源管理方法及装置

Publications (2)

Publication Number Publication Date
CN110879747A CN110879747A (zh) 2020-03-13
CN110879747B true CN110879747B (zh) 2022-08-05

Family

ID=69727871

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811033844.0A Active CN110879747B (zh) 2018-09-05 2018-09-05 资源管理方法及装置

Country Status (1)

Country Link
CN (1) CN110879747B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187884A (zh) * 2007-12-06 2008-05-28 北京金山软件有限公司 资源管理方法和资源管理系统
CN101446909A (zh) * 2007-11-30 2009-06-03 国际商业机器公司 用于管理任务事件的方法和系统
GB201319895D0 (en) * 2013-11-12 2013-12-25 Ibm Method for accessing business object resources and machine-to-machine communication environment
CN103810045A (zh) * 2012-11-09 2014-05-21 阿里巴巴集团控股有限公司 资源分配方法、资源管理器、资源服务器及系统
CN105635931A (zh) * 2014-11-04 2016-06-01 华为技术有限公司 一种资源访问的方法和装置
CN106844061A (zh) * 2015-12-03 2017-06-13 腾讯科技(深圳)有限公司 共享资源处理方法和装置
CN107357808A (zh) * 2017-05-27 2017-11-17 北京五八信息技术有限公司 数据管理方法、装置及设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446909A (zh) * 2007-11-30 2009-06-03 国际商业机器公司 用于管理任务事件的方法和系统
CN101187884A (zh) * 2007-12-06 2008-05-28 北京金山软件有限公司 资源管理方法和资源管理系统
CN103810045A (zh) * 2012-11-09 2014-05-21 阿里巴巴集团控股有限公司 资源分配方法、资源管理器、资源服务器及系统
GB201319895D0 (en) * 2013-11-12 2013-12-25 Ibm Method for accessing business object resources and machine-to-machine communication environment
CN105635931A (zh) * 2014-11-04 2016-06-01 华为技术有限公司 一种资源访问的方法和装置
CN106844061A (zh) * 2015-12-03 2017-06-13 腾讯科技(深圳)有限公司 共享资源处理方法和装置
CN107357808A (zh) * 2017-05-27 2017-11-17 北京五八信息技术有限公司 数据管理方法、装置及设备

Also Published As

Publication number Publication date
CN110879747A (zh) 2020-03-13

Similar Documents

Publication Publication Date Title
CN109933443B (zh) 进程间通信方法、装置、计算机设备及可读存储介质
CN110297689B (zh) 智能合约执行方法、装置、设备及介质
US7904886B2 (en) Method for executing an application in a virtual container forming a virtualized environment session
CN111324571B (zh) 一种容器集群管理方法、装置及系统
JPH1165863A (ja) 共有資源管理方法
EP0737922A1 (en) Method and apparatus for managing computer processes
CN109614167B (zh) 一种管理插件的方法和系统
US20210097476A1 (en) Container Management Method, Apparatus, and Device
EP3485375B1 (en) Workflow-based object destruction
CN107977260B (zh) 任务提交方法及装置
CN113010265A (zh) Pod的调度方法、调度器、存储插件及系统
CN114531477A (zh) 功能组件的配置方法、装置、计算机设备和存储介质
CN113342554B (zh) Io多路复用方法、介质、设备和操作系统
CN112559525B (zh) 数据检查系统、方法、装置和服务器
CN114328097A (zh) 一种文件监控方法、装置、电子设备和存储介质
CN108496157B (zh) 使用扩展接口提供运行时跟踪的系统和方法
CN111258726A (zh) 任务调度方法和装置
CN110324722B (zh) 直播间中数据的获取方法、装置、设备和存储介质
CN110879747B (zh) 资源管理方法及装置
CN115225482B (zh) 一种基于Kubernetes进行Pod容器网络配置的方法及装置
CN109976881B (zh) 事务识别方法和装置、存储介质以及电子装置
CN114675954A (zh) 任务调度方法及装置
CN114860203A (zh) 项目创建方法、装置、服务器及存储介质
US9418175B2 (en) Enumeration of a concurrent data structure
CN114462388A (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