一种调整线程池的方法、装置、设备和计算机存储介质制造方法及图纸

技术编号:31307817 阅读:25 留言:0更新日期:2021-12-12 21:29
本申请实施例提出了一种调整线程池的方法、装置、电子设备和计算机存储介质,该方法包括:根据目标线程池中各线程执行每个任务前的第一时间戳和执行每个任务后的第二时间戳,确定所述目标线程池中各线程执行每个任务的执行时间;所述目标线程池是新建的唯一线程池;根据所述每个任务的执行时间,确定所述目标线程池中各线程对应的任务类型;基于所述任务类型,调整所述目标线程池中的核心线程数。调整所述目标线程池中的核心线程数。调整所述目标线程池中的核心线程数。

【技术实现步骤摘要】
一种调整线程池的方法、装置、设备和计算机存储介质


[0001]本申请涉及计算机应用
,尤其涉及一种调整线程池的方法、装置、电子设备和计算机存储介质。

技术介绍

[0002]在日常的开发工作当中,为提高并发量和增加吞吐量,线程池在一个应用系统中承担着执行最重要的业务逻辑的角色;开发人员接触的应用系统中,很多对外会提供多个服务或是接口,每个服务和接口的线程池都是独立的;即,每个应用系统中都会存在多个线程池,且每个线程池共用系统资源的中央处理器(central processing unit,CPU)、内存、网络等资源。
[0003]相关技术中,当多个线程池在共用系统资源时,每个线程池都是感知不到对方的,即,每个线程池的运行都是相互独立的,这样当对方的线程池消耗系统资源时,会严重影响本线程池的运行,且每个线程池新建线程也会严重消耗系统资源;另外,每个线程池不能根据自身的运行情况适应性地调整线程池,会降低线程池中线程任务执行的效率。

技术实现思路

[0004]本申请提供一种调整线程池的方法、装置、电子设备和计算机存储介质。
[0005]本申请的技术方案是这样实现的:
[0006]本申请实施例提供了一种调整线程池的方法,所述方法包括:
[0007]根据目标线程池中各线程执行每个任务前的第一时间戳和执行每个任务后的第二时间戳,确定所述目标线程池中各线程执行每个任务的执行时间;所述目标线程池是新建的唯一线程池;
[0008]根据所述每个任务的执行时间,确定所述目标线程池中各线程对应的任务类型;
[0009]基于所述任务类型,调整所述目标线程池中的核心线程数。
[0010]在一些实施例中,所述根据所述每个任务的执行时间,确定所述目标线程池中各线程对应的任务类型,包括:
[0011]根据所述每个任务的执行时间,确定每个设定时间间隔内多个任务的平均执行时间;基于所述平均执行时间与预设时长阈值的比较结果,确定所述目标线程池中各线程对应的任务类型。
[0012]在一些实施例中,所述基于所述平均执行时间与预设时长阈值的比较结果,确定所述目标线程池中各线程对应的任务类型,包括:
[0013]在确定所述平均执行时间大于所述预设时长阈值的情况下,确定所述目标线程池中各线程对应的任务类型为输入输出(Input Output,IO)密集型;
[0014]在确定所述平均执行时间小于或等于所述预设时长阈值的情况下,确定所述目标线程池中各线程对应的任务类型为CPU密集型。
[0015]在一些实施例中,所述基于所述任务类型,调整所述目标线程池中的核心线程数,
包括:
[0016]在确定所述目标线程池中各线程对应的任务类型为IO密集型时,调整所述目标线程池中的核心线程数为大于或等于N+1的值;其中,N表示CPU核心数;
[0017]在确定所述目标线程池中各线程对应的任务类型为CPU密集型时,调整目标线程池中的核心线程数为N或N+1。
[0018]在一些实施例中,所述根据所述每个任务的执行时间,确定每个设定时间间隔内多个任务的平均执行时间,包括:
[0019]根据每个任务的执行时间,对每个设定时间间隔内多个任务的执行时间进行加锁;
[0020]根据加锁后的多个任务的执行时间,确定每个设定时间间隔内多个任务的平均执行时间。
[0021]在一些实施例中,在确定所述目标线程池中各线程执行每个任务的执行时间后,所述方法还包括:
[0022]将所述每个任务的执行时间通过键值对(key

value)的形式进行保存;其中,key表示每个任务的通用唯一识别码(universally unique identifier,uuid),value表示每个任务对应的执行时间。
[0023]本申请实施例还提出了一种调整线程池的装置,所述装置包括第一确定模块、第二确定模块和调整模块,其中,
[0024]第一确定模块,用于根据目标线程池中各线程执行每个任务前的第一时间戳和执行每个任务后的第二时间戳,确定所述目标线程池中各线程执行每个任务的执行时间;所述目标线程池是新建的唯一线程池;
[0025]第二确定模块,用于根据所述每个任务的执行时间,确定所述目标线程池中各线程对应的任务类型;
[0026]调整模块,用于基于所述任务类型,调整所述目标线程池中的核心线程数。
[0027]本申请实施例提供一种电子设备,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述一个或多个技术方案提供的调整线程池的方法。
[0028]本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后能够实现前述一个或多个技术方案提供的调整线程池的方法。
[0029]本申请实施例提出了一种调整线程池的方法、装置、电子设备和计算机存储介质,该方法包括:根据目标线程池中各线程执行每个任务前的第一时间戳和执行每个任务后的第二时间戳,确定所述目标线程池中各线程执行每个任务的执行时间;所述目标线程池是新建的唯一线程池;根据所述每个任务的执行时间,确定所述目标线程池中各线程对应的任务类型;基于所述任务类型,调整所述目标线程池中的核心线程数;如此,本申请实施例通过在应用系统中新建唯一的目标线程池,使得应用系统中对外提供的各个服务和接口可以共用该目标线程池,能够节省系统资源;进一步地,根据目标线程池中各线程执行每个任务的执行时间,确定目标线程池中各线程对应的任务类型;进而,根据任务类型适应性地调整线程池中的核心线程数来适配实时运行的任务,这样,可以减少任务执行的时长,使得目
标线程池中各线程的任务执行更高效。
附图说明
[0030]图1a是本申请实施例中的一种调整线程池的方法的流程示意图;
[0031]图1b是本申请实施例中的对每个任务的执行时间进行保存的示意图;
[0032]图1c是本申请实施例中的确定每个设定时间间隔内多个任务的平均执行时间的示意图;
[0033]图1d是本申请实施例中的调整目标线程池中的核心线程数的示意图;
[0034]图2是本申请实施例中的另一种调整线程池的方法的示意图;
[0035]图3是本申请实施例的调整线程池的装置的组成结构示意图;
[0036]图4是本申请实施例提供的电子设备的结构示意图。
具体实施方式
[0037]以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本申请,并不用于限定本申请。另外,以下所提供的实施例是用于实施本申请的部分实施例,而非提供实施本申请的全部实施例,在不冲突的情况下,本申请实施例记载的技术方案可以任意组合的方式实施。
[0038]需要说明的是,在本申请实施例中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种调整线程池的方法,其特征在于,所述方法包括:根据目标线程池中各线程执行每个任务前的第一时间戳和执行每个任务后的第二时间戳,确定所述目标线程池中各线程执行每个任务的执行时间;所述目标线程池是新建的唯一线程池;根据所述每个任务的执行时间,确定所述目标线程池中各线程对应的任务类型;基于所述任务类型,调整所述目标线程池中的核心线程数。2.根据权利要求1所述的方法,其特征在于,所述根据所述每个任务的执行时间,确定所述目标线程池中各线程对应的任务类型,包括:根据所述每个任务的执行时间,确定每个设定时间间隔内多个任务的平均执行时间;基于所述平均执行时间与预设时长阈值的比较结果,确定所述目标线程池中各线程对应的任务类型。3.根据权利要求2所述的方法,其特征在于,所述基于所述平均执行时间与预设时长阈值的比较结果,确定所述目标线程池中各线程对应的任务类型,包括:在确定所述平均执行时间大于所述预设时长阈值的情况下,确定所述目标线程池中各线程对应的任务类型为输入输出IO密集型;在确定所述平均执行时间小于或等于所述预设时长阈值的情况下,确定所述目标线程池中各线程对应的任务类型为中央处理器CPU密集型。4.根据权利要求3所述的方法,其特征在于,所述基于所述任务类型,调整所述目标线程池中的核心线程数,包括:在确定所述目标线程池中各线程对应的任务类型为IO密集型时,调整所述目标线程池中的核心线程数为大于或等于N+1的值;其中,N表示CPU核心数;在确定所述目标线程池中各线程对应的任务类型为CPU密集型时,调整目标线程池中的核心线程数为N或N+1。5.根据权利要求2所述的方法,其特征在于,所述根据所述每个任务的执行时间,确定每个设定时间间隔内多个任务的平均执行时间,...

【专利技术属性】
技术研发人员:李鹏程
申请(专利权)人:北京京东世纪贸易有限公司
类型:发明
国别省市:

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

1