一种基于线程调配引擎的线程资源动态调配系统和方法

文档序号:6621865阅读:201来源:国知局
一种基于线程调配引擎的线程资源动态调配系统和方法
【专利摘要】本发明公开了一种基于线程调配引擎的线程资源动态调配系统和方法,该系统包括主线程、任务列表、线程调配引擎、线程池管理器和线程池,该方法包括以下步骤:A、主线程传输任务请求至任务列表;B、任务列表根据请求创建多个任务队列;C、线程池管理器创建包含多个线程的线程池;D、线程调配引擎动态调配线程池的线程资源以执行所述任务。本发明线程资源动态调配方法和系统对任务进行分类,管控,保证优先级高的优先进行,优先级低的也有一定的资源运行,从而提高线程突发事件的处理,使高峰期可以充分利用服务器资源,空闲期释放服务器资源。
【专利说明】一种基于线程调配引擎的线程资源动态调配系统和方法

【技术领域】
[0001] 本发明设计操作系统,尤其是一种基于线程调配引擎的线程资源动态调配方法和 系统。

【背景技术】
[0002] 传统多线程方案中采用的服务器模型是一旦接受到请求之后,即创建一个新的 线程,由该线程执行任务。任务执行完毕后,线程退出,这就是"即时创建,即时销毁"的策 略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是 执行时间较短,而且执行次数极其频繁,那么服务器将处于不停的创建线程,销毁线程的状 态。
[0003] 传统线程池方案采用预创建的技术,在应用程序启动之后,将立即创建一定数量 的线程(N1),放入空闲队列中。这些线程都是处于阻塞状态,不消耗CPU,但占用较小的内 存空间。当任务到来后,线程池选择一个空闲线程,把任务传入此线程中运行。当N1个线程 都在处理任务后,任务会加入等待队列,等待超时后线程池自动创建一定数量的新线程,用 于处理更多的任务。在任务执行完毕后线程也不退出,而是继续保持在池中等待下一次的 任务。当系统比较空闲时,大部分线程都一直处于暂停状态,线程池自动销毁一部分线程, 回收系统资源。
[0004] 传统线程池有以下缺点,任务队列只有一个队列,没有对多个队列作轮询,无法设 定任务优先级,无法限制任务执行速度等。工作线程数量相对限制,运行过程不能动态变化 工作线程数量。


【发明内容】

[0005] 为解决上述技术问题,本发明的目的是提供一种基于线程调配引擎的线程资源动 态调配方法和系统。
[0006] 本发明采用的技术方案是: 一种基于线程调配引擎的线程资源动态调配系统和方法,其特征在于:该系统包括主 线程、任务列表、线程调配引擎、线程池管理器和线程池,该方法包括以下步骤: A、 主线程传输任务请求至任务列表; B、 任务列表根据请求创建多个任务队列; C、 线程池管理器创建包含多个线程的线程池; D、 线程调配引擎动态调配线程池的线程资源以执行所述任务。
[0007] 进一步的,所述步骤B中任务列表根据配置文件或者创建者设定任务优先级,并 附带入队时间,根据任务优先级划分多个任务队列。
[0008] 更进一步的,所述任务列表根据优先级和等待时间的权值确定最终任务队列的排 队权值,排队权值高的任务队列优先供线程调配引擎动态调配。
[0009] 作为本方案的优化,该系统还包括一监控模块,该监控模块用于对任务队列,线程 池情况进行实时监控,以便于任务动态调配,即用户在界面对任务提高权值,实现紧急任务 优先执行。
[0010] 其中,所述优先级权值为80%,时间权值为20%。
[0011] 进一步的,所述步骤C中,线程池的工作线程在没有饱和的情况下,任务可直接委 派给空闲的工作线程;而当线程池工作线程饱和的情况下,线程池管理器动态增加的工作 线程数目,以适应突发性的请求;一旦任务请求变少线程池管理器将逐步减少线程池中工 作线程的数目。
[0012] 所述线程增加采用一种超前方式,即批量增加一批工作线程,而不是来一个请求 才建立创建一个线程。
[0013] 此外,所述线程池管理器还配置有限制线程池中工作线程数目的上限和下限。
[0014] 本发明的有益效果: 本发明线程资源动态调配方法和系统对任务进行分类,管控,保证优先级高的优先进 行,优先级低的也有一定的资源运行,从而提高线程突发事件的处理,使高峰期可以充分利 用服务器资源,空闲期释放服务器资源。

【专利附图】

【附图说明】
[0015] 下面结合附图对本发明的【具体实施方式】做进一步的说明。
[0016] 图1是本发明的系统架构图; 图2是本发明的流程图; 图3是本发明线程池工作流程图。

【具体实施方式】
[0017] 如图1-图2所示,为本发明的一种基于线程调配引擎的线程资源动态调配系统和 方法,该系统包括主线程、任务列表、线程调配引擎、监控模块、线程池管理器和线程池; 本发明的线程资源动态调配方法包括以下步骤: A、 在应用程序启动之后,主线程传输任务请求至任务列表; B、 任务列表根据请求创建多个任务队列,队列中由N个任务组成;具体的,任务列表根 据配置文件或者创建者设定任务优先级,并附带入队时间,根据任务优先级划分多个任务 队列; 任务列表根据优先级和等待时间的权值确定最终任务队列的排队权值,排队权值高的 任务队列优先供线程调配引擎动态调配。其中,所述优先级权值为80%,时间权值为20%,当 然该权值比例按需设计,亦可为其他比例。
[0018] C、线程池管理器创建包含多个线程的线程池; 其中,如图3所示,该步骤中,线程池的工作线程在没有饱和的情况下,任务可直接委 派给空闲的工作线程;而当线程池工作线程饱和的情况下,线程池管理器动态增加的工作 线程数目,以适应突发性的请求;一旦任务请求变少线程池管理器将逐步减少线程池中工 作线程的数目。工作线程是指线程池中实际执行的线程。
[0019] 所述线程增加采用一种超前方式,即批量增加一批工作线程,而不是来一个请求 才建立创建一个线程。此外,所述线程池管理器还配置有限制线程池中工作线程数目的上 限和下限。
[0020] D、线程调配引擎动态调配线程池的线程资源以执行所述任务。
[0021] 作为本方案的优化,该系统还包括一监控模块,该监控模块用于对任务队列,线程 池情况进行实时监控,以便于任务动态调配,即用户在界面对任务提高权值,实现紧急任务 优先执行。
[0022] 本发明线程资源动态调配方法和系统解决在高峰期,任务队列排队等待时间会与 任务数成正比问题,使用线程池工作线程的动态增减,解决程序不同时期对服务器资源的 增减或释放的问题,保证优先级高的优先进行,优先级低的也有一定的资源运行,从而提高 线程突发事件的处理,使高峰期可以充分利用服务器资源,空闲期释放服务器资源,最终达 到提高系统整体的性能与资源利用率。
[0023] 以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以 基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。
【权利要求】
1. 一种基于线程调配引擎的线程资源动态调配系统和方法,其特征在于:该系统包括 主线程、任务列表、线程调配引擎、线程池管理器和线程池,该方法包括以下步骤: A、 主线程传输任务请求至任务列表; B、 任务列表根据请求创建多个任务队列; C、 线程池管理器创建包含多个线程的线程池; D、 线程调配引擎动态调配线程池的线程资源以执行所述任务。
2. 根据权利要求1所述的一种基于线程调配引擎的线程资源动态调配系统和方法,其 特征在于:所述步骤B中任务列表根据配置文件或者创建者设定任务优先级,并附带入队 时间,根据任务优先级划分多个任务队列。
3. 根据权利要求2所述的一种基于线程调配引擎的线程资源动态调配系统和方法,其 特征在于:所述任务列表根据优先级和等待时间的权值确定最终任务队列的排队权值,排 队权值高的任务队列优先供线程调配引擎动态调配。
4. 根据权利要求3所述的一种基于线程调配引擎的线程资源动态调配系统和方法,其 特征在于:该系统还包括一监控模块,该监控模块用于对任务队列,线程池情况进行实时 监控,以便于任务动态调配,即用户在界面对任务提高权值,实现紧急任务优先执行。
5. 根据权利要求3所述的一种基于线程调配引擎的线程资源动态调配系统和方法,其 特征在于:所述优先级权值为80%,时间权值为20%。
6. 根据权利要求1所述的一种基于线程调配引擎的线程资源动态调配系统和方法,其 特征在于:所述步骤C中,线程池的工作线程在没有饱和的情况下,任务可直接委派给空 闲的工作线程;而当线程池工作线程饱和的情况下,线程池管理器动态增加的工作线程数 目,以适应突发性的请求;一旦任务请求变少线程池管理器将逐步减少线程池中工作线程 的数目。
7. 根据权利要求6所述的一种基于线程调配引擎的线程资源动态调配系统和方法,其 特征在于:所述线程增加采用一种超前方式,即批量增加一批工作线程。
8. 根据权利要求6所述的一种基于线程调配引擎的线程资源动态调配系统和方法,其 特征在于:所述线程池管理器还配置有限制线程池中工作线程数目的上限和下限。
【文档编号】G06F9/50GK104111877SQ201410367792
【公开日】2014年10月22日 申请日期:2014年7月29日 优先权日:2014年7月29日
【发明者】余敬龙 申请人:广东能龙教育股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1