资源管理系统及方法技术方案

技术编号:12947872 阅读:1154 留言:0更新日期:2016-03-02 09:37
本发明专利技术公开了一种资源管理系统及方法,所述资源管理系统包括:令牌生成模块,用于生成线程访问令牌;令牌队列,用于存储所述线程访问令牌;令牌分发模块,用于在接收到一线程对象发送的请求指令时,从所述令牌队列中获取线程访问令牌,并将获取的线程访问令牌发送至所述线程对象;资源创建模块,用于在所述线程对象接收到所述线程访问令牌后,为所述线程对象创建对应的资源;资源析构模块,用于在所述线程对象使用完毕所述资源后,释放并销毁所述资源,并控制所述线程访问令牌返回所述令牌队列。本发明专利技术采用令牌机制进行资源管理,无需资源管理器的介入,从而减轻了资源管理的负担,提高了资源管理的效率。

【技术实现步骤摘要】

本专利技术涉及一种,特别是涉及一种通过令牌机制来管理和分配资源的。
技术介绍
现有的资源管理方法,比如线程池的管理,是直接启动一个线程,交由线程池来管理,当需要使用的时候,从线程池中通过竞争的手段来获得一个线程,如果没有可用的线程,会启动一个新的线程。同时还要关心线程的工作情况、工作内容等,属于偏重量级的管理方式。当并发的数量较多的时候,由于多线程的复杂性,导致管理程序的难度陡然上升。同时,许多设计在工作任务分配的策略上使用的是等待或不等待结果二选一的方式,不等待结果的方式,可以做到后台工作与前台工作完全隔离,互不影响,但却无法方便的获悉工作结果;等待结果的方式,会使得前后台在某处堵塞,然后工作场景往往需要两种模式结入口 ο
技术实现思路
本专利技术要解决的技术问题是为了克服现有技术中在资源管理和结果可等待方面存在不足的缺陷,提供一种。本专利技术是通过下述技术方案来解决上述技术问题的:本专利技术提供了一种资源管理系统,其特点在于,包括:令牌生成模块,用于生成线程访问令牌;令牌队列,用于存储所述线程访问令牌;令牌分发模块,用于在接收到一线程对象发送的请求指令时,从所述令牌队列中获取线程访问令牌,并将获取的线程访问令牌发送至所述线程对象;资源创建模块,用于在所述线程对象接收到所述线程访问令牌后,为所述线程对象创建对应的资源;资源析构模块,用于在所述线程对象使用完毕所述资源后,释放并销毁所述资源,并控制所述线程访问令牌返回所述令牌队列。较佳地,所述资源管理系统还包括第一判断模块,用于判断所述令牌队列中是否具有空闲的线程访问令牌,若是,则调用所述令牌分发模块,若否,则在一预设时间段内继续判断,在判断为是时调用所述令牌分发模块,在判断为否时停止操作。佳佳地,所述资源管理系统还包括第二判断模块,用于判断是否需要同步句柄,若是,则返回所述线程对象的句柄,并在所述线程对象使用完毕所述资源后返回所述线程对象的运行结果,若否,则直接调用所述资源析构模块。较佳地,所述线程访问令牌为数字、字符、符号或对象。较佳地,所述令牌队列存储的线程访问令牌的数量具有一最大阈值。本专利技术的目的在于还提供了一种资源管理方法,其特点在于,其利用上述的资源管理系统实现,所述资源管理方法包括以下步骤:S1、所述令牌生成模块生成线程访问令牌;S2、所述令牌队列存储所述线程访问令牌;S3、所述令牌分发模块在接收到一线程对象发送的请求指令时,从所述令牌队列中获取线程访问令牌,并将获取的线程访问令牌发送至所述线程对象;S4、所述资源创建模块在所述线程对象接收到所述线程访问令牌后,为所述线程对象创建对应的资源;S5、所述资源析构模块在所述线程对象使用完毕所述资源后,释放并销毁所述资源,并控制所述线程访问令牌返回所述令牌队列。较佳地,所述资源管理系统还包括第一判断模块,所述资源管理方法在步骤$和S3之间还包括:S21、所述第一判断模块判断所述令牌队列中是否具有空闲的线程访问令牌,若是,则执行步骤S3,若否,则在一预设时间段内继续判断,在判断为是时执行步骤S3,在判断为否时结束流程。较佳地,所述资源管理系统还包括第二判断模块,所述资源管理方法在步骤&和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中,就像用于索引和管理资源的门票。当前第1页1 2 本文档来自技高网...

【技术保护点】
一种资源管理系统,其特征在于,包括:令牌生成模块,用于生成线程访问令牌;令牌队列,用于存储所述线程访问令牌;令牌分发模块,用于在接收到一线程对象发送的请求指令时,从所述令牌队列中获取线程访问令牌,并将获取的线程访问令牌发送至所述线程对象;资源创建模块,用于在所述线程对象接收到所述线程访问令牌后,为所述线程对象创建对应的资源;资源析构模块,用于在所述线程对象使用完毕所述资源后,释放并销毁所述资源,并控制所述线程访问令牌返回所述令牌队列。

【技术特征摘要】

【专利技术属性】
技术研发人员:桂之明陆费汉平姚滨晖郭亮
申请(专利权)人:上海携程商务有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1