CN102043675B - 一种基于任务处理请求任务量大小的线程池管理方法 - Google Patents
一种基于任务处理请求任务量大小的线程池管理方法 Download PDFInfo
- Publication number
- CN102043675B CN102043675B CN2010105739755A CN201010573975A CN102043675B CN 102043675 B CN102043675 B CN 102043675B CN 2010105739755 A CN2010105739755 A CN 2010105739755A CN 201010573975 A CN201010573975 A CN 201010573975A CN 102043675 B CN102043675 B CN 102043675B
- Authority
- CN
- China
- Prior art keywords
- task
- request
- thread pool
- handled
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种基于任务处理请求任务量大小的线程池管理方法。该方法当任务处理请求监听系统在监听到新的任务处理请求后,任务处理请求登记系统会记录该请求相关信息,任务处理请求管理系统定时读取任务处理请求登记系统中记录的任务处理请求信息,按照任务处理请求的任务处理量大小与任务处理量参数阈值之间的关系以及任务处理请求提交的时间先后顺序将任务处理请求调度到相应的子线程池中处理,任务处理请求管理系统在完成调度之后,任务量参数阈值调节器自适应调整任务量参数阈值。在任务处理请求所对应的任务处理量随机分布且差异波动较大的应用场景下,该方法可有效提高系统处理效率。
Description
技术领域
本发明涉及一种基于任务处理请求任务量大小的线程池管理方法,属于计算机应用技术领域。
背景技术
在多个用户并发向服务器发出任务处理请求的场景下,大多采用多线程并行处理的方式以充分利用服务器资源,提高处理效率。同时为降低多线程频繁创建、销毁所产生的系统资源消耗并且避免线程数量过多带来的内存过度消耗,多采用了中国发明专利申请号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)当所述任务量参数小于当前任务量参数阈值时,如果小任务量线程池中含有空闲线程,所述任务处理请求管理系统将该任务处理请求交由小任务量线程池中的线程执行该任务处理请求;如果小任务量线程池中不含空闲线程,则该任务处理请求继续处于等待状态;
(6)当所述任务处理请求在由所述任务处理请求管理系统分配给线程池后,任务量参数阈值调节器先更新已执行任务总量的平均值更新后的为上一时刻的与该时刻调度到线程池中任务处理请求的任务处理量之和的平均值。然后,任务量参数阈值调节器根据参数调节公式自适应调节任务量参数阈值T。其中,Tn、Tn+1分别为当前时刻和下一时刻的任务量参数阈值;
(7)任务处理完成后,系统释放相应线程资源。
根据本发明的另一方面,任务量参数为请求处理文件大小。
根据本发明的另一方面,任务量参数为其他可描述计算机处理任务量大小的参数。
根据本发明的另一方面,任务处理请求登记系统由数据库或文件的方式实现。
根据本发明的另一方面,任务处理请求管理系统先判断各请求的处理任务量,再判断各请求的提交时间。
本发明在面对任务处理请求所对应的任务处理量随机分布且差异波动较大场景时,有如下优点:
首先,该方法在线程池的设定上,依据处理任务量大小的不同,在大的线程池中建立子线程池。同时,依据不同任务量大小所消耗的系统资源情况,分别设定子线程池的容量。这种方式可以针对任务处理请求的任务处理量不同,分别将这些任务在不同的子线程池中处理。当系统接收的任务处理请求都是大任务量处理请求时,系统不会开启过多的需要消耗大量系统资源的线程导致系统效率降低;同时,由于大任务量子线程池对大任务量处理线程数目做了控制,小任务量子线程池的容量可适当增大,从而提高系统对小任务量处理请求的处理效率。
其次,任务处理请求管理系统在分配任务时,将各任务处理请求的任务处理量大小作为任务分配的依据之一,可解决本发明说明书背景技术中所举例子中存在的问题。与传统方法相比,该方法避免了传统方法中仅按照任务处理请求的时间先后顺序排队使用线程池可能造成的弊端,可更高效的使用系统资源,降低系统的整体任务处理时间。
最后,从步骤6中可以看到,由于任务量参数阈值可以随着系统处理任务量的大小自适应调节,从而可以针对不同任务处理量范围的应用场景,自动调整至合理的任务量参数阈值。
附图说明
图1为本发明的工作流程图。
具体实施方式
下面结合具体实例对本发明方案做一具体说明,在实例当中用户发出的任务处理请求是对文件的处理请求,请求的任务量参数是待处理文件的大小。
如图1所示,一种基于请求任务量大小的线程池管理方法按照如下方式进行:
首先,系统进行初始化设置。分别设定大任务量线程池51容量为5,小任务量线程池容量52容量为10;初始化任务量参数阈值调节器6中的任务量参数阈值初值T0=1M(代表文件大小阈值为1兆字节),任务量参数阈值调整步长λ=0.1,任务量系数ξ=0.2以及任务处理请求管理系统4读取任务处理请求登记系统记录的频率f=1000HZ。
在系统初始化完成之后,系统按照本发明内容所述步骤进行相应处理。假定系统运行经过10ms后的状态为:大任务量线程池空闲线程数为1,小任务量线程池空闲数为2,任务量参数阈值T10=1.5M,已执行任务总量的平均值任务处理请求登记系统中此时记录的任务处理请求信息如“任务处理请求登记系统表”所示。
此时,任务处理请求管理系统取到该表数据,发现ID为1001和1002的任务处理请求其任务量参数大于此时任务量参数阈值1.5M,由于ID为1001的任务处理请求其提交时间先于ID为1002的任务处理请求且此时大任务量线程池空闲线程数为1,故将ID为1001的任务处理请求交由大容量线程池处理,而对ID为1002的任务处理请求暂不处理。同时,任务处理请求管理系统发现ID为1003的任务处理请求任务量参数小于此时任务量参数阈值1.5M且此时小任务量线程池空闲线程数为2,故将ID为1003的任务处理请求交由小容量线程池处理。
最后,当线程池处理完该任务后,系统释放相应的线程资源。
至此,该系统完成了一次完整的基于任务处理请求任务量大小的线程池管理步骤。
Claims (4)
1.一种基于任务处理请求任务量大小的线程池管理方法,其特征在于包含以下步骤:
(1)初始化线程池,分别设定大任务量线程池、小任务量线程池的容量,任务量参数阈值初值T0,任务量参数阈值调整步长λ,任务量系数ξ,以及任务处理请求管理系统读取任务处理请求登记系统记录的频率f,其中,用于处理请求的任务量参数大于任务量参数阈值的线程池称之为大容量线程池,用于处理请求的任务量参数小于任务量参数阈值的线程池称之为小容量线程池;
(2)当任务处理请求监听系统监听到新的任务处理请求后,将任务处理请求信息记录到任务处理请求登记系统中,其中,所述任务处理请求信息包括:任务处理请求ID、任务处理请求提交时间以及所述任务量参数;
(3)任务处理请求管理系统根据所述任务处理请求管理系统读取任务处理请求登记系统记录的频率f,定时读取所述任务处理请求登记系统中记录的所述任务处理请求信息;
(4)当所述任务量参数大于当前任务量参数阈值时,如果大任务量线程池中含有空闲线程,所述任务处理请求管理系统将该任务处理请求交由大任务量线程池中的线程执行该任务处理请求;如果大任务量线程池中不含空闲线程,则该任务处理请求继续处于等待状态;
(5)当所述任务量参数小于当前任务量参数阈值时,如果小任务量线程池中含有空闲线程,所述任务处理请求管理系统将该任务处理请求交由小任务量线程池中的线程执行该任务处理请求;如果小任务量线程池中不含空闲线程,则该任务处理请求继续处于等待状态;
(6)当所述任务处理请求在由所述任务处理请求管理系统分配给线程池后,任务量参数阈值调节器先更新已执行任务总量的平均值更新后的为上一时刻的与该时刻调度到线程池中任务处理请求的任务处理量之和的平均值,然后,任务量参数阈值调节器根据参数调节公式自适应调节任务量参数阈值T,其中,Tn、Tn+1分别为当前时刻和下一时刻的任务量参数阈值;
(7)任务处理完成后,系统释放相应线程资源。
2.根据权利要求1中所述的线程池管理方法,其特征在于:所述任务量参数为请求处理文件大小。
3.根据权利要求1中所述的线程池管理方法,其特征在于:所述任务量参数为其他可描述计算机处理任务量大小的参数。
4.根据权利要求1中所述的线程池管理方法,其特征在于:所述任务处理请求登记系统由数据库或文件的方式实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105739755A CN102043675B (zh) | 2010-12-06 | 2010-12-06 | 一种基于任务处理请求任务量大小的线程池管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105739755A CN102043675B (zh) | 2010-12-06 | 2010-12-06 | 一种基于任务处理请求任务量大小的线程池管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102043675A CN102043675A (zh) | 2011-05-04 |
CN102043675B true CN102043675B (zh) | 2012-11-14 |
Family
ID=43909828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105739755A Expired - Fee Related CN102043675B (zh) | 2010-12-06 | 2010-12-06 | 一种基于任务处理请求任务量大小的线程池管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043675B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888279A (zh) * | 2012-12-20 | 2014-06-25 | 阿里巴巴集团控股有限公司 | 基于反馈控制循环的资源池动态管理的方法和系统 |
CN103338156B (zh) * | 2013-06-17 | 2016-08-24 | 南京国电南自美卓控制系统有限公司 | 一种基于线程池的命名管道服务器并发通信方法 |
CN103605568B (zh) * | 2013-10-29 | 2017-10-31 | 北京奇虎科技有限公司 | 一种多线程管理方法及装置 |
CN104461845B (zh) * | 2014-11-17 | 2017-05-17 | 中国航天科工集团第二研究院七〇六所 | 日志采集系统线池自适应方法 |
CN106406987B (zh) * | 2015-07-29 | 2020-01-03 | 阿里巴巴集团控股有限公司 | 一种集群中的任务执行方法及装置 |
CN105279603B (zh) * | 2015-09-11 | 2020-02-07 | 福建师范大学 | 可动态配置的大数据分析系统及方法 |
CN106559447A (zh) * | 2015-09-25 | 2017-04-05 | 中兴通讯股份有限公司 | Jslee容器的业务处理方法及系统 |
CN107402810B (zh) * | 2016-05-20 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 线程分配方法及装置 |
CN108121597A (zh) * | 2016-11-29 | 2018-06-05 | 迈普通信技术股份有限公司 | 一种大数据导出装置及方法 |
CN106775984B (zh) * | 2016-12-26 | 2020-01-21 | 锐捷网络股份有限公司 | 一种管理线程池的方法和装置 |
CN107908463B (zh) * | 2017-07-21 | 2021-12-10 | 国网浙江省电力公司 | 一种任务分解及并行处理方法 |
CN108132835A (zh) * | 2017-12-29 | 2018-06-08 | 五八有限公司 | 基于多进程的任务请求处理方法、装置和系统 |
CN108763082A (zh) * | 2018-05-30 | 2018-11-06 | 平安普惠企业管理有限公司 | 测试数据生成方法、装置、计算机设备及存储介质 |
CN110633133A (zh) * | 2018-06-21 | 2019-12-31 | 中兴通讯股份有限公司 | 一种任务处理方法、装置及计算机可读存储介质 |
CN111124655A (zh) * | 2018-10-31 | 2020-05-08 | 武汉斗鱼网络科技有限公司 | 一种网络请求调度方法、终端装置及存储介质 |
CN112286917B (zh) * | 2020-10-22 | 2022-10-18 | 北京锐安科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN115037702B (zh) * | 2022-05-23 | 2024-04-12 | 北京梧桐车联科技有限责任公司 | 报文分发、数据发送方法及设备 |
CN115878664B (zh) * | 2022-11-24 | 2023-07-18 | 灵犀科技有限公司 | 一种海量输入数据的实时查询匹配的方法及系统 |
CN117453363B (zh) * | 2023-11-06 | 2024-07-12 | 北京明朝万达科技股份有限公司 | 一种附件处理方法及装置、电子设备、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101387952A (zh) * | 2008-09-24 | 2009-03-18 | 上海大学 | 单芯片多处理器任务调度管理方法 |
CN101706740A (zh) * | 2009-10-28 | 2010-05-12 | 太仓市同维电子有限公司 | 用于数据交互的缓存模式自适应系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5729760A (en) * | 1996-06-21 | 1998-03-17 | Intel Corporation | System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode |
CN101236513B (zh) * | 2007-01-30 | 2012-07-18 | 阿里巴巴集团控股有限公司 | 一种分布式任务系统和分布式任务管理方法 |
-
2010
- 2010-12-06 CN CN2010105739755A patent/CN102043675B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101387952A (zh) * | 2008-09-24 | 2009-03-18 | 上海大学 | 单芯片多处理器任务调度管理方法 |
CN101706740A (zh) * | 2009-10-28 | 2010-05-12 | 太仓市同维电子有限公司 | 用于数据交互的缓存模式自适应系统及方法 |
Non-Patent Citations (1)
Title |
---|
JP特表2000-513471A 2000.10.10 |
Also Published As
Publication number | Publication date |
---|---|
CN102043675A (zh) | 2011-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102043675B (zh) | 一种基于任务处理请求任务量大小的线程池管理方法 | |
CN110096349B (zh) | 一种基于集群节点负载状态预测的作业调度方法 | |
CN104915407B (zh) | 一种基于Hadoop多作业环境下的资源调度方法 | |
WO2024060789A1 (zh) | 面向智能计算的分布式训练任务调度方法、系统和装置 | |
CN104298550B (zh) | 一种面向Hadoop的动态调度方法 | |
WO2015106533A1 (zh) | 基于协处理器的作业调度处理方法及装置 | |
WO2015100995A1 (zh) | 一种智能服务调度方法 | |
US9612651B2 (en) | Access based resources driven low power control and management for multi-core system on a chip | |
CN110888714A (zh) | 容器的调度方法、装置和计算机可读存储介质 | |
CN105389206A (zh) | 一种云计算数据中心虚拟机资源快速配置方法 | |
CN111104211A (zh) | 基于任务依赖的计算卸载方法、系统、设备及介质 | |
CN103179048A (zh) | 云数据中心的主机QoS策略变换方法及系统 | |
CN103761146A (zh) | 一种MapReduce动态设定slots数量的方法 | |
CN105847385B (zh) | 一种基于运行时长的云计算平台虚拟机调度方法 | |
CN104598311A (zh) | 一种面向Hadoop的实时作业公平调度的方法和装置 | |
CN112486642A (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN110084507B (zh) | 云计算环境下分级感知的科学工作流调度优化方法 | |
CN105320565A (zh) | 一种针对多种应用软件的计算机资源调度方法 | |
CN111459648B (zh) | 面向应用程序的异构多核平台资源优化方法和装置 | |
CN101685335A (zh) | 基于seda的应用服务器及其节能装置和方法 | |
CN117909061A (zh) | 基于gpu混合集群的模型任务处理系统和资源调度方法 | |
CN118152084A (zh) | 云计算环境中spark集群多作业调度方法 | |
CN110308991B (zh) | 一种基于随机任务的数据中心节能优化方法及系统 | |
CN114860449B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN109144693A (zh) | 一种功率自适应任务调度方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121114 Termination date: 20131206 |