一种基于任务处理请求任务量大小的线程池管理方法技术

技术编号:5358900 阅读:366 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出了一种基于任务处理请求任务量大小的线程池管理方法。该方法当任务处理请求监听系统在监听到新的任务处理请求后,任务处理请求登记系统会记录该请求相关信息,任务处理请求管理系统定时读取任务处理请求登记系统中记录的任务处理请求信息,按照任务处理请求的任务处理量大小与任务处理量参数阈值之间的关系以及任务处理请求提交的时间先后顺序将任务处理请求调度到相应的子线程池中处理,任务处理请求管理系统在完成调度之后,任务量参数阈值调节器自适应调整任务量参数阈值。在任务处理请求所对应的任务处理量随机分布且差异波动较大的应用场景下,该方法可有效提高系统处理效率。

【技术实现步骤摘要】

本专利技术涉及,属于计算机应 用

技术介绍
在多个用户并发向服务器发出任务处理请求的场景下,大多采用多线程并行处理 的方式以充分利用服务器资源,提高处理效率。同时为降低多线程频繁创建、销毁所产生的 系统资源消耗并且避免线程数量过多带来的内存过度消耗,多采用了中国专利技术专利申请号 CN2004100500352中所描述的线程池方法。该方法当线程池中存在空闲线程时,任务调度器 将该请求交给空闲线程处理;当线程池不存在空闲线程时,任务调度器将请求按照时间先 后顺序放入任务队列中排队,当线程池存在空闲线程时再将该任务处理请求交给空闲线程 进行处理。然而,在任务处理请求所对应的任务处理量随机分布且差异波动较大时,上述方 法会存在如下问题首先,在不同的并发任务处理请求场景下,单一的线程池容量设定可能会影响系 统处理效率。如果线程池容量按照大任务量的处理能力设定,当并发的任务处理请求都为 小任务量处理请求且请求数量高于线程池容量时,则会有多个任务处理请求在任务队列中 排队,从而不能充分利用服务器资源;如果线程池容量按照小任务量的处理能力设定,当并 发的任务处理请求都为大任务量处理请求,仍然有可能造成服务器资源的过度争用,降低 服务器的吞吐率。其次,任务调度器在分配任务时,仅按照请求的时间先后顺序分配而不考虑各请 求相应的处理任务量,会导致系统资源分配不均衡、不合理,从而降低系统的整体任务处理 效率。例如,设定线程池容量为2,在某一时刻任务队列中存在着三个任务处理请求A,B,C, 其处理所需时间分别为ls,ls,2s。如果按照在队列中的顺序,其执行顺序为A,B先同时处 理,A,B处理完成之后处理C,理想条件下系统的整体任务处理完成时间为3s (ls+2s)。而如 果任务执行顺序为A,C先同时执行,A执行完成后线程池有了空闲的线程,此时线程池中B, C再同时执行,理想条件下系统的整体任务处理完成时间为2s。可见,后者的处理效率高于 前者,其主要原因在于传统的任务调度的方式,仅依据请求的时间先后顺序分配线程资源, 未能合理使用系统资源所致。综上所述,在任务处理请求所对应的任务处理量随机分布且差异波动较大时,传 统的线程池管理方法会在提高系统处理效率上存在局限性,因而有必要采用新的线程池管 理方法,进一步提高系统处理效率。
技术实现思路
本专利技术要解决的技术问题在于提出一种基于任务处理请求任务量大小的线程池 管理方法,该线程池管理方法可以提升在任务处理请求所对应的任务处理量随机分布且差3异波动较大场景下计算机系统的处理效率。根据本专利技术的一方面,提供一种基于任务处理请求任务量大小的线程池管理方 法,包含以下步骤(1)初始化线程池,分别设定大任务量线程池、小任务量线程池的容量,任务量参 数阈值初值Ttl,任务量参数阈值调整步长λ,任务量系数ξ,以及任务处理请求管理系统读 取任务处理请求登记系统记录的频率f·,其中,用于处理请求的任务量参数大于任务量参数 阈值的线程池称之为大容量线程池,用于处理请求的任务量参数小于任务量参数阈值的线 程池称之为小容量线程池;(2)当任务处理请求监听系统监听到新的任务处理请求后,将任务处理请求信息 记录到任务处理请求登记系统中,其中,所述任务处理请求信息包括任务处理请求ID、任 务处理请求提交时间以及所述任务量参数; (3)任务处理请求管理系统根据所述任务处理请求管理系统读取任务处理请求登 记系统记录的频率f,定时读取所述任务处理请求登记系统中记录的所述任务处理请求信 息;(4)当所述任务量参数大于当前任务量参数阈值时,如果大任务量线程池中含有 空闲线程,所述任务处理请求管理系统将该任务处理请求交由大任务量线程池中的线程执 行该任务处理请求;如果大任务量线程池中不含空闲线程,则该任务处理请求继续处于等 待状态;(5)当所述任务量参数小于当前任务量参数阈值时,如果小任务量线程池中含有 空闲线程,所述任务处理请求管理系统将该任务处理请求交由小任务量线程池中的线程执 行该任务处理请求;如果小任务量线程池中不含空闲线程,则该任务处理请求继续处于等 待状态;(6)当所述任务处理请求在由所述任务处理请求管理系统分配给线程池后,任务 量参数阈值调节器先更新已执行任务总量的平均值3,更新后的S为上一时刻的ξ与该时刻 调度到线程池中任务处理请求的任务处理量之和的平均值。然后,任务量参数阈值调节器 根据参数调节公式Ht λ (Τ「ξ忌自适应调节任务量参数阈值Τ。其中,Τη、Τη+1分别为当 前时刻和下一时刻的任务量参数阈值;(7)任务处理完成后,系统释放相应线程资源。根据本专利技术的另一方面,任务量参数为请求处理文件大小。根据本专利技术的另一方面,任务量参数为其他可描述计算机处理任务量大小的参 数。根据本专利技术的另一方面,任务处理请求登记系统由数据库或文件的方式实现。根据本专利技术的另一方面,任务处理请求管理系统先判断各请求的处理任务量,再 判断各请求的提交时间。本专利技术在面对任务处理请求所对应的任务处理量随机分布且差异波动较大场景 时,有如下优点首先,该方法在线程池的设定上,依据处理任务量大小的不同,在大的线程池中建 立子线程池。同时,依据不同任务量大小所消耗的系统资源情况,分别设定子线程池的容 量。这种方式可以针对任务处理请求的任务处理量不同,分别将这些任务在不同的子线程池中处理。当系统接收的任务处理请求都是大任务量处理请求时,系统不会开启过多的需 要消耗大量系统资源的线程导致系统效率降低;同时,由于大任务量子线程池对大任务量 处理线程数目做了控制,小任务量子线程池的容量可适当增大,从而提高系统对小任务量 处理请求的处理效率。其次,任务处理请求管理系统在分配任务时,将各任务处理请求的任务处理量大 小作为任务分配的依据之一,可解决本专利技术说明书
技术介绍
中所举例子中存在的问题。与 传统方法相比,该方法避免了传统方法中仅按照任务处理请求的时间先后顺序排队使用线 程池可能造成的弊端,可更高效的使用系统资源,降低系统的整体任务处理时间。最后,从步骤6中可以看到,由于任务量参数阈值可以随着系统处理任务量的大 小自适应调节,从而可以针对不同任务处理量范围的应用场景,自动调整至合理的任务量 参数阈值。附图说明图1为本专利技术的工作流程图。具体实施方式下面结合具体实例对本专利技术方案做一具体说明,在实例当中用户发出的任务处理 请求是对文件的处理请求,请求的任务量参数是待处理文件的大小。如图1所示,一种基于请求任务量大小的线程池管理方法按照如下方式进行首先,系统进行初始化设置。分别设定大任务量线程池51容量为5,小任务量线程 池容量52容量为10 ;初始化任务量参数阈值调节器6中的任务量参数阈值初值Ttl = IM(代 表文件大小阈值为1兆字节),任务量参数阈值调整步长λ =0.1,任务量系数ξ =0.2 以及任务处理请求管理系统4读取任务处理请求登记系统记录的频率f = 1000HZ。在系统初始化完成之后,系统按照本
技术实现思路
所述步骤进行相应处理。假定系统 运行经过IOms后的状态为大任务量线程池空闲线程数为1,小任务量线程池空闲数为2, 任务量参数阈值Tltl = 1. 5M,已执行任务总量的平均值忌=2M,任务处理请求登记系统中此 时记录的本文档来自技高网
...

【技术保护点】
一种基于任务处理请求任务量大小的线程池管理方法,其特征在于包含以下步骤:(1)初始化线程池,分别设定大任务量线程池、小任务量线程池的容量,任务量参数阈值初值T↓[0],任务量参数阈值调整步长λ,任务量系数ξ,以及任务处理请求管理系统读取任务处理请求登记系统记录的频率f,其中,用于处理请求的任务量参数大于任务量参数阈值的线程池称之为大容量线程池,用于处理请求的任务量参数小于任务量参数阈值的线程池称之为小容量线程池;(2)当任务处理请求监听系统监听到新的任务处理请求后,将任务处理请求信息记录到任务处理请求登记系统中,其中,所述任务处理请求信息包括:任务处理请求ID、任务处理请求提交时间以及所述任务量参数;(3)任务处理请求管理系统根据所述任务处理请求管理系统读取任务处理请求登记系统记录的频率f,定时读取所述任务处理请求登记系统中记录的所述任务处理请求信息;(4)当所述任务量参数大于当前任务量参数阈值时,如果大任务量线程池中含有空闲线程,所述任务处理请求管理系统将该任务处理请求交由大任务量线程池中的线程执行该任务处理请求;如果大任务量线程池中不含空闲线程,则该任务处理请求继续处于等待状态;(5)当所述任务量参数小于当前任务量参数阈值时,如果小任务量线程池中含有空闲线程,所述任务处理请求管理系统将该任务处理请求交由小任务量线程池中的线程执行该任务处理请求;如果小任务量线程池中不含空闲线程,则该任务处理请求继续处于等待状态;(6)当所述任务处理请求在由所述任务处理请求管理系统分配给线程池后,任务量参数阈值调节器先更新已执行任务总量的平均值*,更新后的*为上一时刻的*与该时刻调度到线程池中任务处理请求的任务处理量之和的平均值。然后,任务量参数阈值调节器根据参数调节公式T↓[n+1]=T↓[n]+λ(T↓[n]-ξ*)自适应调节任务量参数阈值T。其中,T↓[n]、T↓[n+1]分别为当前时刻和下一时刻的任务量参数阈值;(7)任务处理完成后,系统释放相应线程资源。...

【技术特征摘要】

【专利技术属性】
技术研发人员:孔超石永鑫陈宾
申请(专利权)人:北京华证普惠信息股份有限公司
类型:发明
国别省市:11[中国|北京]

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

1