[发明专利]一种基于线程调配引擎的线程资源动态调配系统和方法在审
申请号: | 201410367792.6 | 申请日: | 2014-07-29 |
公开(公告)号: | CN104111877A | 公开(公告)日: | 2014-10-22 |
发明(设计)人: | 余敬龙 | 申请(专利权)人: | 广东能龙教育股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 张海文 |
地址: | 528403 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 线程 调配 引擎 资源 动态 系统 方法 | ||
技术领域
本发明设计操作系统,尤其是一种基于线程调配引擎的线程资源动态调配方法和系统。
背景技术
传统多线程方案中采用的服务器模型是一旦接受到请求之后,即创建一个新的线程,由该线程执行任务。任务执行完毕后,线程退出,这就是“即时创建,即时销毁”的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么服务器将处于不停的创建线程,销毁线程的状态。
传统线程池方案采用预创建的技术,在应用程序启动之后,将立即创建一定数量的线程(N1),放入空闲队列中。这些线程都是处于阻塞状态,不消耗CPU,但占用较小的内存空间。当任务到来后,线程池选择一个空闲线程,把任务传入此线程中运行。当N1个线程都在处理任务后,任务会加入等待队列,等待超时后线程池自动创建一定数量的新线程,用于处理更多的任务。在任务执行完毕后线程也不退出,而是继续保持在池中等待下一次的任务。当系统比较空闲时,大部分线程都一直处于暂停状态,线程池自动销毁一部分线程,回收系统资源。
传统线程池有以下缺点,任务队列只有一个队列,没有对多个队列作轮询,无法设定任务优先级,无法限制任务执行速度等。工作线程数量相对限制,运行过程不能动态变化工作线程数量。
发明内容
为解决上述技术问题,本发明的目的是提供一种基于线程调配引擎的线程资源动态调配方法和系统。
本发明采用的技术方案是:
一种基于线程调配引擎的线程资源动态调配系统和方法,其特征在于:该系统包括主线程、任务列表、线程调配引擎、线程池管理器和线程池,该方法包括以下步骤:
A、主线程传输任务请求至任务列表;
B、任务列表根据请求创建多个任务队列;
C、线程池管理器创建包含多个线程的线程池;
D、线程调配引擎动态调配线程池的线程资源以执行所述任务。
进一步的,所述步骤B中任务列表根据配置文件或者创建者设定任务优先级,并附带入队时间,根据任务优先级划分多个任务队列。
更进一步的,所述任务列表根据优先级和等待时间的权值确定最终任务队列的排队权值,排队权值高的任务队列优先供线程调配引擎动态调配。
作为本方案的优化,该系统还包括一监控模块,该监控模块用于对任务队列,线程池情况进行实时监控,以便于任务动态调配,即用户在界面对任务提高权值,实现紧急任务优先执行。
其中,所述优先级权值为80%,时间权值为20%。
进一步的,所述步骤C中,线程池的工作线程在没有饱和的情况下,任务可直接委派给空闲的工作线程;而当线程池工作线程饱和的情况下,线程池管理器动态增加的工作线程数目,以适应突发性的请求;一旦任务请求变少线程池管理器将逐步减少线程池中工作线程的数目。
所述线程增加采用一种超前方式,即批量增加一批工作线程,而不是来一个请求才建立创建一个线程。
此外,所述线程池管理器还配置有限制线程池中工作线程数目的上限和下限。
本发明的有益效果:
本发明线程资源动态调配方法和系统对任务进行分类,管控,保证优先级高的优先进行,优先级低的也有一定的资源运行,从而提高线程突发事件的处理,使高峰期可以充分利用服务器资源,空闲期释放服务器资源。
附图说明
下面结合附图对本发明的具体实施方式做进一步的说明。
图1是本发明的系统架构图;
图2是本发明的流程图;
图3是本发明线程池工作流程图。
具体实施方式
如图1-图2所示,为本发明的一种基于线程调配引擎的线程资源动态调配系统和方法,该系统包括主线程、任务列表、线程调配引擎、监控模块、线程池管理器和线程池;
本发明的线程资源动态调配方法包括以下步骤:
A、在应用程序启动之后,主线程传输任务请求至任务列表;
B、任务列表根据请求创建多个任务队列,队列中由N个任务组成;具体的,任务列表根据配置文件或者创建者设定任务优先级,并附带入队时间,根据任务优先级划分多个任务队列;
任务列表根据优先级和等待时间的权值确定最终任务队列的排队权值,排队权值高的任务队列优先供线程调配引擎动态调配。其中,所述优先级权值为80%,时间权值为20%,当然该权值比例按需设计,亦可为其他比例。
C、线程池管理器创建包含多个线程的线程池;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东能龙教育股份有限公司,未经广东能龙教育股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410367792.6/2.html,转载请声明来源钻瓜专利网。