CN105373434B - 资源管理系统及方法 - Google Patents
资源管理系统及方法 Download PDFInfo
- Publication number
- CN105373434B CN105373434B CN201510947323.6A CN201510947323A CN105373434B CN 105373434 B CN105373434 B CN 105373434B CN 201510947323 A CN201510947323 A CN 201510947323A CN 105373434 B CN105373434 B CN 105373434B
- Authority
- CN
- China
- Prior art keywords
- token
- thread
- resource
- module
- queue
- 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
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/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种资源管理系统及方法,所述资源管理系统包括:令牌生成模块,用于生成线程访问令牌;令牌队列,用于存储所述线程访问令牌;令牌分发模块,用于在接收到一线程对象发送的请求指令时,从所述令牌队列中获取线程访问令牌,并将获取的线程访问令牌发送至所述线程对象;资源创建模块,用于在所述线程对象接收到所述线程访问令牌后,为所述线程对象创建对应的资源;资源析构模块,用于在所述线程对象使用完毕所述资源后,释放并销毁所述资源,并控制所述线程访问令牌返回所述令牌队列。本发明采用令牌机制进行资源管理,无需资源管理器的介入,从而减轻了资源管理的负担,提高了资源管理的效率。
Description
技术领域
本发明涉及一种资源管理系统及方法,特别是涉及一种通过令牌机制来管理和分配资源的资源管理系统及方法。
背景技术
现有的资源管理方法,比如线程池的管理,是直接启动一个线程,交由线程池来管理,当需要使用的时候,从线程池中通过竞争的手段来获得一个线程,如果没有可用的线程,会启动一个新的线程。同时还要关心线程的工作情况、工作内容等,属于偏重量级的管理方式。当并发的数量较多的时候,由于多线程的复杂性,导致管理程序的难度陡然上升。同时,许多设计在工作任务分配的策略上使用的是等待或不等待结果二选一的方式,不等待结果的方式,可以做到后台工作与前台工作完全隔离,互不影响,但却无法方便的获悉工作结果;等待结果的方式,会使得前后台在某处堵塞,然后工作场景往往需要两种模式结合。
发明内容
本发明要解决的技术问题是为了克服现有技术中在资源管理和结果可等待方面存在不足的缺陷,提供一种资源管理系统及方法。
本发明是通过下述技术方案来解决上述技术问题的:
本发明提供了一种资源管理系统,其特点在于,包括:
令牌生成模块,用于生成线程访问令牌;
令牌队列,用于存储所述线程访问令牌;
令牌分发模块,用于在接收到一线程对象发送的请求指令时,从所述令牌队列中获取线程访问令牌,并将获取的线程访问令牌发送至所述线程对象;
资源创建模块,用于在所述线程对象接收到所述线程访问令牌后,为所述线程对象创建对应的资源;
资源析构模块,用于在所述线程对象使用完毕所述资源后,释放并销毁所述资源,并控制所述线程访问令牌返回所述令牌队列。
较佳地,所述资源管理系统还包括第一判断模块,用于判断所述令牌队列中是否具有空闲的线程访问令牌,若是,则调用所述令牌分发模块,若否,则在一预设时间段内继续判断,在判断为是时调用所述令牌分发模块,在判断为否时停止操作。
佳佳地,所述资源管理系统还包括第二判断模块,用于判断是否需要同步句柄,若是,则返回所述线程对象的句柄,并在所述线程对象使用完毕所述资源后返回所述线程对象的运行结果,若否,则直接调用所述资源析构模块。
较佳地,所述线程访问令牌为数字、字符、符号或对象。
较佳地,所述令牌队列存储的线程访问令牌的数量具有一最大阈值。
本发明的目的在于还提供了一种资源管理方法,其特点在于,其利用上述的资源管理系统实现,所述资源管理方法包括以下步骤:
S1、所述令牌生成模块生成线程访问令牌;
S2、所述令牌队列存储所述线程访问令牌;
S3、所述令牌分发模块在接收到一线程对象发送的请求指令时,从所述令牌队列中获取线程访问令牌,并将获取的线程访问令牌发送至所述线程对象;
S4、所述资源创建模块在所述线程对象接收到所述线程访问令牌后,为所述线程对象创建对应的资源;
S5、所述资源析构模块在所述线程对象使用完毕所述资源后,释放并销毁所述资源,并控制所述线程访问令牌返回所述令牌队列。
较佳地,所述资源管理系统还包括第一判断模块,所述资源管理方法在步骤S2和S3之间还包括:
S21、所述第一判断模块判断所述令牌队列中是否具有空闲的线程访问令牌,若是,则执行步骤S3,若否,则在一预设时间段内继续判断,在判断为是时执行步骤S3,在判断为否时结束流程。
较佳地,所述资源管理系统还包括第二判断模块,所述资源管理方法在步骤S4和S5之间还包括:
S41、所述第二判断模块判断是否需要同步句柄,若是,则返回所述线程对象的句柄,并在所述线程对象使用完毕所述资源后返回所述线程对象的运行结果,若否,则执行步骤S5。
较佳地,所述线程访问令牌为数字、字符、符号或对象。
较佳地,所述令牌队列存储的线程访问令牌的数量具有一最大阈值。
本发明的积极进步效果在于:本发明采用令牌机制进行资源管理,无需资源管理器的介入,从而减轻了资源管理的负担,提高了资源管理的效率,减低了复杂度,适用于各种复杂的情况,使得资源的分配、创建、使用、结果和销毁的过程变得更贴近使用者,同时也将资源管理器的职责专注于分配和回收的方式而非具体内容,简化了资源管理器的操作。
附图说明
图1为本发明的一较佳实施例的资源管理系统的模块示意图。
图2为本发明的一较佳实施例的资源管理方法的流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
如图1所示,本发明的资源管理系统包括令牌生成模块1、令牌队列2、令牌分发模块3、资源创建模块4、资源析构模块5、第一判断模块6以及第二判断模块7。
其中,所述令牌生成模块1用于生成线程访问令牌,所述令牌队列2用于存储所述线程访问令牌,所述第一判断模块6则用于判断所述令牌队列2中是否具有空闲的线程访问令牌,若是,则调用所述令牌分发模块3,若否,则在一预设时间段内继续进行判断,即在所述预设时间段内继续等待,在判断为是时则表明在所述预设时间段内所述令牌队列2中出现空闲的线程访问令牌,此时就调用所述令牌分发模块3,在判断为否时则表明在所述预设时间段内所述令牌队列2中依然没有出现空闲的线程访问令牌,此时就停止操作。
所述令牌分发模块3在接收到一线程对象发送的请求指令时,从所述令牌队列2中获取线程访问令牌,并将获取的线程访问令牌发送至所述线程对象;所述资源创建模块4用于在所述线程对象接收到所述线程访问令牌后,为所述线程对象创建对应的资源;
所述第二判断模块7则判断是否需要同步句柄,若是,则返回所述线程对象的句柄,并在所述线程对象使用完毕所述资源后返回所述线程对象的运行结果,若否,则直接调用所述资源析构模块5;所述资源析构模块5则用于在所述线程对象使用完毕所述资源后,释放并销毁所述资源,从而完成对所述资源的析构,并控制所述线程访问令牌返回所述令牌队列2中。
本发明提供了一种用于资源分配和使用的轻量级管理系统,特别是针对开闭代价较高的资源,如进程、线程等。
在本发明的具体实施过程中,所述令牌队列2用于通过其中存储的线程访问令牌管理和索引资源,并决定资源的可用性,所述资源创建模块4用于产生资源,所述资源析构模块5则用于回收资源,所述第二判断模块7用于在必要的时候让前后台工作同步。
其中,所述线程访问令牌由随机的符号表示,其自身与资源无直接关系,所述线程访问令牌可以由数字、字符、符号甚至对象来表示,所述线程访问令牌被填充在所述令牌队列2中,就像用于索引和管理资源的门票。
所述资源创建模块4和所述资源析构模块5可以分别由特定资源的构造器和析构器组成,分别用于产生和销毁资源,起到统一处理的作用,避免资源泄露和多重创建。
所述线程对象的句柄包括真实的资源索引和线程标识,用于查询资源状态和工作结果。
所述令牌队列2存储的线程访问令牌的数量具有一最大阈值,具体可按照需要设定数量上限值,所述线程访问令牌由简单的符号代表,在初始阶段,按照预先设置的数量上限值用随机的符号来填充整个令牌队列;在需要资源的时候,就会尝试从所述令牌队列2中取得线程访问令牌,得到线程访问令牌的线程对象可以按照资源创建的方式来得到所需要的资源,数量为1个单位,然后自描述和按需使用资源;在使用完毕资源之后,资源会自动销毁,同时线程访问令牌会返回所述令牌队列2供其它线程对象使用。如果需要等待资源的处理结果,可以使用资源句柄在需要的时候等待结果,否则的话就是完全无关的两个线程。在申请线程访问令牌的过程中可以按照需要设置排队时间,时间大于零就会等待可用的句柄,否则一旦令牌队列中无空闲的线程访问令牌,就直接放弃工作内容。
进一步,获得线程访问令牌的程序,其使用方式和资源关闭的时机完全由使用者自己描述和处理,无需资源管理器的介入,从而减轻了资源管理器的负担,同时资源的创建,包括资源的类型、创建的方式完全由使用者制定,进一步地简化了资源管理器的操作。
如图2所示,本发明还提供了一种资源管理方法,其利用上述的资源管理系统实现,所述资源管理方法包括以下步骤:
步骤101、所述令牌生成模块生成线程访问令牌;
步骤102、所述令牌队列存储所述线程访问令牌;
步骤103、所述第一判断模块判断所述令牌队列中是否具有空闲的线程访问令牌,若是,则执行步骤104,若否,则在一预设时间段内继续判断,在判断为是时执行步骤104,在判断为否时结束流程;
步骤104、所述令牌分发模块在接收到一线程对象发送的请求指令时,从所述令牌队列中获取线程访问令牌,并将获取的线程访问令牌发送至所述线程对象;
步骤105、所述资源创建模块在所述线程对象接收到所述线程访问令牌后,为所述线程对象创建对应的资源;
步骤106、所述第二判断模块判断是否需要同步句柄,若是,则返回所述线程对象的句柄,并在所述线程对象使用完毕所述资源后返回所述线程对象的运行结果,当然,接着可以继续执行步骤107;若否,则执行步骤107;
步骤107、所述资源析构模块在所述线程对象使用完毕所述资源后,释放并销毁所述资源,并控制所述线程访问令牌返回所述令牌队列。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (8)
1.一种资源管理系统,其特征在于,包括:
令牌生成模块,用于生成线程访问令牌;
令牌队列,用于存储所述线程访问令牌;
令牌分发模块,用于在接收到一线程对象发送的请求指令时,从所述令牌队列中获取线程访问令牌,并将获取的线程访问令牌发送至所述线程对象;
资源创建模块,用于在所述线程对象接收到所述线程访问令牌后,为所述线程对象创建对应的资源;
资源析构模块,用于在所述线程对象使用完毕所述资源后,释放并销毁所述资源,并控制所述线程访问令牌返回所述令牌队列;
所述资源管理系统还包括第二判断模块,用于判断是否需要同步句柄,若是,则返回所述线程对象的句柄,并在所述线程对象使用完毕所述资源后返回所述线程对象的运行结果,若否,则直接调用所述资源析构模块。
2.如权利要求1所述的资源管理系统,其特征在于,所述资源管理系统还包括第一判断模块,用于判断所述令牌队列中是否具有空闲的线程访问令牌,若是,则调用所述令牌分发模块,若否,则在一预设时间段内继续判断,在判断为是时调用所述令牌分发模块,在判断为否时停止操作。
3.如权利要求1或2所述的资源管理系统,其特征在于,所述线程访问令牌为数字、字符、符号或对象。
4.如权利要求3所述的资源管理系统,其特征在于,所述令牌队列存储的线程访问令牌的数量具有一最大阈值。
5.一种资源管理方法,其特征在于,其利用如权利要求1所述的资源管理系统实现,所述资源管理方法包括以下步骤:
S1、所述令牌生成模块生成线程访问令牌;
S2、所述令牌队列存储所述线程访问令牌;
S3、所述令牌分发模块在接收到一线程对象发送的请求指令时,从所述令牌队列中获取线程访问令牌,并将获取的线程访问令牌发送至所述线程对象;
S4、所述资源创建模块在所述线程对象接收到所述线程访问令牌后,为所述线程对象创建对应的资源;
S5、所述资源析构模块在所述线程对象使用完毕所述资源后,释放并销毁所述资源,并控制所述线程访问令牌返回所述令牌队列;
所述资源管理方法在步骤S4和S5之间还包括:
S41、所述第二判断模块判断是否需要同步句柄,若是,则返回所述线程对象的句柄,并在所述线程对象使用完毕所述资源后返回所述线程对象的运行结果,若否,则执行步骤S5。
6.如权利要求5所述的资源管理方法,其特征在于,所述资源管理系统还包括第一判断模块,所述资源管理方法在步骤S2和S3之间还包括:
S21、所述第一判断模块判断所述令牌队列中是否具有空闲的线程访问令牌,若是,则执行步骤S3,若否,则在一预设时间段内继续判断,在判断为是时执行步骤S3,在判断为否时结束流程。
7.如权利要求5或6所述的资源管理方法,其特征在于,所述线程访问令牌为数字、字符、符号或对象。
8.如权利要求7所述的资源管理方法,其特征在于,所述令牌队列存储的线程访问令牌的数量具有一最大阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510947323.6A CN105373434B (zh) | 2015-12-16 | 2015-12-16 | 资源管理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510947323.6A CN105373434B (zh) | 2015-12-16 | 2015-12-16 | 资源管理系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105373434A CN105373434A (zh) | 2016-03-02 |
CN105373434B true CN105373434B (zh) | 2018-11-13 |
Family
ID=55375659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510947323.6A Active CN105373434B (zh) | 2015-12-16 | 2015-12-16 | 资源管理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105373434B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10223163B2 (en) * | 2016-07-14 | 2019-03-05 | Microsoft Technology Licensing, Llc | Workflow-based object destruction |
CN109491794A (zh) * | 2018-11-21 | 2019-03-19 | 联想(北京)有限公司 | 资源管理方法、装置及电子设备 |
CN114531602B (zh) * | 2020-11-23 | 2024-02-23 | 中国移动通信集团安徽有限公司 | 基于动态资源释放的视频直播性能优化方法及装置 |
CN112445619A (zh) * | 2020-11-30 | 2021-03-05 | 海光信息技术股份有限公司 | 在多线程系统中动态共享有序资源的管理系统和方法 |
CN112637871B (zh) * | 2020-12-17 | 2021-10-08 | 深圳市微网力合信息技术有限公司 | 一种wifi6路由的路由资源分配方法及装置 |
CN114296916B (zh) * | 2021-12-23 | 2024-01-12 | 苏州浪潮智能科技有限公司 | 一种提高释放rdma性能的方法、装置及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1325069A (zh) * | 2000-05-15 | 2001-12-05 | 松下电器产业株式会社 | 应用执行装置及方法 |
CN1514354A (zh) * | 2002-12-31 | 2004-07-21 | ����̩ƽ | 面向构件基于系统内核的进程池/线程池管理方法 |
CN101060471A (zh) * | 2006-06-23 | 2007-10-24 | 华为技术有限公司 | 令牌资源流控方法 |
CN102546648A (zh) * | 2012-01-18 | 2012-07-04 | Ut斯达康通讯有限公司 | 一种资源访问授权的方法 |
CN103166783A (zh) * | 2011-12-14 | 2013-06-19 | 华为技术有限公司 | 资源的控制方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589936B2 (en) * | 2010-03-16 | 2013-11-19 | Alcatel Lucent | Method and apparatus for managing reallocation of system resources |
-
2015
- 2015-12-16 CN CN201510947323.6A patent/CN105373434B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1325069A (zh) * | 2000-05-15 | 2001-12-05 | 松下电器产业株式会社 | 应用执行装置及方法 |
CN1514354A (zh) * | 2002-12-31 | 2004-07-21 | ����̩ƽ | 面向构件基于系统内核的进程池/线程池管理方法 |
CN101060471A (zh) * | 2006-06-23 | 2007-10-24 | 华为技术有限公司 | 令牌资源流控方法 |
CN103166783A (zh) * | 2011-12-14 | 2013-06-19 | 华为技术有限公司 | 资源的控制方法及装置 |
CN102546648A (zh) * | 2012-01-18 | 2012-07-04 | Ut斯达康通讯有限公司 | 一种资源访问授权的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105373434A (zh) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105373434B (zh) | 资源管理系统及方法 | |
CN104461744B (zh) | 一种资源分配方法及装置 | |
CN104866374B (zh) | 基于多任务的离散事件并行仿真及时间同步方法 | |
CN105190545B (zh) | 虚拟化方法和装置及计算机设备 | |
CN103620522B (zh) | 计算机系统的功率消耗的随机管理 | |
CN106406987A (zh) | 一种集群中的任务执行方法及装置 | |
CN103425536B (zh) | 一种面向分布式系统性能测试的测试资源管理方法 | |
CN109445944A (zh) | 一种基于dpdk的网络数据采集处理系统及其方法 | |
CN103620552A (zh) | 采用动态操作系统容器的应用迁移 | |
CN106569891A (zh) | 一种存储系统中任务调度执行的方法和装置 | |
CN105373566B (zh) | 在线重建索引方法及装置 | |
CN105005506B (zh) | 一种虚拟化云中容错资源供给方法 | |
CN104156255B (zh) | 一种虚拟机迁移方法、虚拟机迁移装置及源物理主机 | |
CN104951367B (zh) | 一种虚拟化云中容错任务调度方法 | |
CN106528065B (zh) | 一种线程获取方法及设备 | |
CN106385329A (zh) | 资源池的处理方法、装置和设备 | |
CN103262035B (zh) | 组合式cpu/gpu体系结构系统中的装置发现和拓扑报告 | |
CN106354687A (zh) | 一种数据传输方法及系统 | |
CN109408216A (zh) | 任务生成方法、装置、设备及存储介质 | |
CN109032758A (zh) | 容器集群智能生命周期管理方法及装置 | |
CN110196775A (zh) | 一种计算任务处理方法、装置、设备以及可读存储介质 | |
CN105631921B (zh) | 图像数据的处理方法及装置 | |
CN110020046A (zh) | 一种数据抓取方法及装置 | |
CN111953503B (zh) | Nfv资源部署编排方法和网络功能虚拟化编排器 | |
CN103699444B (zh) | 中央处理器热插拔的实现方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |