System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种线程池的控制方法、装置、电子设备及存储介质。
技术介绍
1、线程池是一种用于管理和复用线程的机制,它允许程序提前创建一组线程,然后重用这些线程来执行多个任务,而不是每次需要执行任务时都创建新的线程。目前,在常规任务推荐技术架构中,大多使用原生的线程池完成相关推荐任务,但是在面对高并发任务场景时,原生的线程池完成任务时的性能表现较差,难以满足上述高并发任务场景的任务处理需求。
2、上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本申请的主要目的在于提供一种线程池的控制方法、装置、电子设备及存储介质,旨在解决原生的线程池完成任务时的性能表现较差,难以满足高并发任务场景的任务处理需求的技术问题。
2、为实现上述目的,本申请提出一种线程池的控制方法,应用于线程池,所述线程池中配置有核心线程,所述线程池的控制方法包括:
3、在接收到待处理任务后,确定是否存在处于空闲状态的核心线程;
4、在不存在所述处于空闲状态的核心线程,且核心线程的总量小于预设线程数上限的情况下,创建新的核心线程;
5、为所述新的核心线程分配所述待处理任务。
6、可选地,所述线程池还配置有任务等待队列,在所述确定是否存在处于空闲状态的核心线程的步骤之后,所述方法还包括:
7、在不存在所述处于空闲状态的核心线程,且所述核心线程的总量等于或大于预设线程上限数的情况下,将所
8、可选地,所述将所述待处理任务加入至所述任务等待队列的步骤包括:
9、确定所述线程池所在虚拟机的堆内剩余内存,在所述堆内剩余内存大于预设内存限制阈值的情况下,确定所述任务等待队列的实际队列长度;
10、在所述实际队列长度小于所述任务等待队列的队列最大长度的情况下,将所述待处理任务加入至所述任务等待队列。
11、可选地,所述线程池的控制方法还包括:
12、在所述线程池中存在由活跃状态变更为空闲状态的核心线程,则为所述由活跃状态变更为空闲状态的核心线程,分配所述任务等待队列中的待处理任务。
13、可选地,在所述确定是否存在处于空闲状态的核心线程的步骤之后,所述方法还包括:
14、在存在所述处于空闲状态的核心线程的情况下,为所述处于空闲状态的核心线程分配所述待处理任务。
15、可选地,所述线程池设置有线程池配置参数,所述线程池的控制方法还包括:
16、监测所述线程池配置参数;
17、在所述线程池配置参数存在更新后,基于更新后的线程池配置参数更新配置,其中,所述配置包括所述线程池的预设线程数上限、所述线程池中处于空闲状态的核心线程的存活时长、所述线程池的任务等待队列的类型、所述任务等待队列的队列最大长度、所述待处理任务的拒绝策略以及所述线程池的告警策略中的至少一种。
18、可选地,所述线程池的控制方法还包括:
19、基于所述核心线程的工作状态,以及所述线程池配置的任务等待队列的工作状态,生成线程池日志;
20、将所述线程池日志发送至预设日志主题,以供预设消费者从所述预设日志主题中获取所述线程池日志,并可视化所述线程池日志。
21、此外,为实现上述目的,本申请还提出一种线程池的控制装置,应用于线程池,所述线程池中配置有核心线程,所述线程池的控制装置包括:
22、确定模块,用于在接收到待处理任务后,确定是否存在处于空闲状态的核心线程;
23、创建模块,用于在不存在所述处于空闲状态的核心线程,且核心线程的总量小于预设线程数上限的情况下,创建新的核心线程;
24、分配模块,用于为所述新的核心线程分配所述待处理任务。
25、此外,为实现上述目的,本申请还提出一种电子设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的线程池的控制方法的步骤。
26、此外,为实现上述目的,本申请还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的线程池的控制方法的步骤。
27、本申请提出的一个或多个技术方案,至少具有以下技术效果:
28、本申请实施例中,线程池在接收到待处理任务后,确定是否存在处于空闲状态的核心线程;在不存在所述处于空闲状态的核心线程,且核心线程的总量小于预设线程数上限的情况下,创建新的核心线程;为所述新的核心线程分配所述待处理任务。即当线程池接受到待处理任务后,首先会确定当前是否存在处于空闲状态的核心线程,若确定不存在处于空闲状态的核心线程,且核心线程的总量小于预设线程上限的情况下,直接创建新的核心线程,即优先增加核心线程的数量,从而使得更多的待处理任务可被同时处理,加快任务处理速度,以满足高并发任务场景的任务处理需求。
本文档来自技高网...【技术保护点】
1.一种线程池的控制方法,其特征在于,应用于线程池,所述线程池中配置有核心线程,所述线程池的控制方法包括:
2.如权利要求1所述的线程池的控制方法,其特征在于,所述线程池还配置有任务等待队列,在所述确定是否存在处于空闲状态的核心线程的步骤之后,所述方法还包括:
3.如权利要求2所述的线程池的控制方法,其特征在于,所述将所述待处理任务加入至所述任务等待队列的步骤包括:
4.如权利要求2所述的线程池的控制方法,其特征在于,所述线程池的控制方法还包括:
5.如权利要求1所述的线程池的控制方法,其特征在于,在所述确定是否存在处于空闲状态的核心线程的步骤之后,所述方法还包括:
6.如权利要求1所述的线程池的控制方法,其特征在于,所述线程池设置有线程池配置参数,所述线程池的控制方法还包括:
7.如权利要求1所述的线程池的控制方法,其特征在于,所述线程池的控制方法还包括:
8.一种线程池的控制装置,其特征在于,应用于线程池,所述线程池中配置有核心线程,所述线程池的控制装置包括:
9.一种电子设备,其
10.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的线程池的控制方法的步骤。
...【技术特征摘要】
1.一种线程池的控制方法,其特征在于,应用于线程池,所述线程池中配置有核心线程,所述线程池的控制方法包括:
2.如权利要求1所述的线程池的控制方法,其特征在于,所述线程池还配置有任务等待队列,在所述确定是否存在处于空闲状态的核心线程的步骤之后,所述方法还包括:
3.如权利要求2所述的线程池的控制方法,其特征在于,所述将所述待处理任务加入至所述任务等待队列的步骤包括:
4.如权利要求2所述的线程池的控制方法,其特征在于,所述线程池的控制方法还包括:
5.如权利要求1所述的线程池的控制方法,其特征在于,在所述确定是否存在处于空闲状态的核心线程的步骤之后,所述方法还包括:
6.如权利要求1所述的线程池的控制方法,其特征在...
【专利技术属性】
技术研发人员:胡博,
申请(专利权)人:招商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。