[发明专利]一种基于任务处理请求任务量大小的线程池管理方法无效
申请号: | 201010573975.5 | 申请日: | 2010-12-06 |
公开(公告)号: | CN102043675A | 公开(公告)日: | 2011-05-04 |
发明(设计)人: | 孔超;石永鑫;陈宾 | 申请(专利权)人: | 北京华证普惠信息股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/38 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 任务 处理 请求 任务量 大小 线程 管理 方法 | ||
技术领域
本发明涉及一种基于任务处理请求任务量大小的线程池管理方法,属于计算机应用技术领域。
背景技术
在多个用户并发向服务器发出任务处理请求的场景下,大多采用多线程并行处理的方式以充分利用服务器资源,提高处理效率。同时为降低多线程频繁创建、销毁所产生的系统资源消耗并且避免线程数量过多带来的内存过度消耗,多采用了中国发明专利申请号CN2004100500352中所描述的线程池方法。该方法当线程池中存在空闲线程时,任务调度器将该请求交给空闲线程处理;当线程池不存在空闲线程时,任务调度器将请求按照时间先后顺序放入任务队列中排队,当线程池存在空闲线程时再将该任务处理请求交给空闲线程进行处理。
然而,在任务处理请求所对应的任务处理量随机分布且差异波动较大时,上述方法会存在如下问题:
首先,在不同的并发任务处理请求场景下,单一的线程池容量设定可能会影响系统处理效率。如果线程池容量按照大任务量的处理能力设定,当并发的任务处理请求都为小任务量处理请求且请求数量高于线程池容量时,则会有多个任务处理请求在任务队列中排队,从而不能充分利用服务器资源;如果线程池容量按照小任务量的处理能力设定,当并发的任务处理请求都为大任务量处理请求,仍然有可能造成服务器资源的过度争用,降低服务器的吞吐率。
其次,任务调度器在分配任务时,仅按照请求的时间先后顺序分配而不考虑各请求相应的处理任务量,会导致系统资源分配不均衡、不合理,从而降低系统的整体任务处理效率。例如,设定线程池容量为2,在某一时刻任务队列中存在着三个任务处理请求A,B,C,其处理所需时间分别为1s,1s,2s。如果按照在队列中的顺序,其执行顺序为A,B先同时处理,A,B处理完成之后处理C,理想条件下系统的整体任务处理完成时间为3s(1s+2s)。而如果任务执行顺序为A,C先同时执行,A执行完成后线程池有了空闲的线程,此时线程池中B,C再同时执行,理想条件下系统的整体任务处理完成时间为2s。可见,后者的处理效率高于前者,其主要原因在于传统的任务调度的方式,仅依据请求的时间先后顺序分配线程资源,未能合理使用系统资源所致。
综上所述,在任务处理请求所对应的任务处理量随机分布且差异波动较大时,传统的线程池管理方法会在提高系统处理效率上存在局限性,因而有必要采用新的线程池管理方法,进一步提高系统处理效率。
发明内容
本发明要解决的技术问题在于提出一种基于任务处理请求任务量大小的线程池管理方法,该线程池管理方法可以提升在任务处理请求所对应的任务处理量随机分布且差异波动较大场景下计算机系统的处理效率。
根据本发明的一方面,提供一种基于任务处理请求任务量大小的线程池管理方法,包含以下步骤:
(1)初始化线程池,分别设定大任务量线程池、小任务量线程池的容量,任务量参数阈值初值T0,任务量参数阈值调整步长λ,任务量系数ξ,以及任务处理请求管理系统读取任务处理请求登记系统记录的频率f,其中,用于处理请求的任务量参数大于任务量参数阈值的线程池称之为大容量线程池,用于处理请求的任务量参数小于任务量参数阈值的线程池称之为小容量线程池;
(2)当任务处理请求监听系统监听到新的任务处理请求后,将任务处理请求信息记录到任务处理请求登记系统中,其中,所述任务处理请求信息包括:任务处理请求ID、任务处理请求提交时间以及所述任务量参数;
(3)任务处理请求管理系统根据所述任务处理请求管理系统读取任务处理请求登记系统记录的频率f,定时读取所述任务处理请求登记系统中记录的所述任务处理请求信息;
(4)当所述任务量参数大于当前任务量参数阈值时,如果大任务量线程池中含有空闲线程,所述任务处理请求管理系统将该任务处理请求交由大任务量线程池中的线程执行该任务处理请求;如果大任务量线程池中不含空闲线程,则该任务处理请求继续处于等待状态;
(5)当所述任务量参数小于当前任务量参数阈值时,如果小任务量线程池中含有空闲线程,所述任务处理请求管理系统将该任务处理请求交由小任务量线程池中的线程执行该任务处理请求;如果小任务量线程池中不含空闲线程,则该任务处理请求继续处于等待状态;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华证普惠信息股份有限公司,未经北京华证普惠信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010573975.5/2.html,转载请声明来源钻瓜专利网。