System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种动态可观测线程池管理方法及系统技术方案_技高网

一种动态可观测线程池管理方法及系统技术方案

技术编号:40922520 阅读:2 留言:0更新日期:2024-04-18 14:46
本公开的实施例提供一种动态可观测线程池管理方法及系统,方法包括:在服务器中设置线程池配置;其中,所述线程池配置包括线程管理策略;客户端获取所述线程池配置,并根据所述线程池配置创建本地线程池;提交任务至所述本地线程池;所述本地线程池执行所述线程管理策略。本公开的实施例的一种动态可观测线程池管理方法及系统,通过在服务器端封装线程池的配置参数,供客户端获取配置,以创建符合标准的线程池,使线程池被合理配置,避免了多种生产事故的产生。

【技术实现步骤摘要】

本公开的实施例属于线程池,具体涉及一种动态可观测线程池管理方法及系统


技术介绍

1、线程池(thread pool)是一种基于池化思想的线程管理工具,使用线程池可以减少创建销毁线程的开销,避免线程过多导致系统资源耗尽。在高并发以及大批量的任务处理场景,线程池的使用是必不可少的。在其使用过程中,线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。例如,对于计算密集型任务,线程数一般取cpu数量+2比较合适,线程数过多会导致额外的线程切换开销。

2、现有技术中至少存在如下问题:

3、1.线程池可随便定义,导致线程资源过多,造成服务器高负载。

4、2.线程池参数不易评估,随着业务的并发提升,业务面临出现故障的风险。

5、3.线程池任务执行时间超过平均执行周期,开发人员无法感知。

6、4.线程池任务堆积,触发拒绝策略,影响既有业务正常运行。

7、5.当业务出现超时、熔断等问题时,因为没有监控,无法确定是不是线程池引起。

8、6.原生线程池不支持运行时变量的传递。比如,mdc上下文在遇到线程池时停止。

9、7.当项目关闭时,大量正在运行的线程池任务将被丢弃。

10、8.在线程池运行时任务执行停止,无法确定病因,怀疑发生死锁或执行耗时操作。


技术实现思路

1、本公开的实施例旨在至少解决现有技术中存在的技术问题之一,提供一种动态可观测线程池管理方法及系统。

2、本公开的一个方面提供一种动态可观测线程池管理方法,包括:

3、在服务器中设置线程池配置;其中,所述线程池配置包括线程管理策略;

4、客户端获取所述线程池配置,并根据所述线程池配置创建本地线程池;

5、提交任务至所述本地线程池;

6、所述本地线程池执行所述线程管理策略。

7、可选的,所述线程管理策略包括:

8、判断所述本地线程池是否在运行,响应于其未运行的情况,执行拒绝策略并告警。

9、可选的,当所述本地线程池在运行时,判断核心线程数是否已满,响应于其未满的情况,创建新线程并执行所述任务。

10、可选的,当所述核心线程数已满时,判断任务队列是否已满,响应于其未满的情况,将所述任务添加到任务队列。

11、可选的,当所述任务队列已满时,判断所述本地线程池是否达到最大配置数,响应于其未达到的情况,创建新线程并执行所述任务。

12、可选的,当所述本地线程池达到最大配置数时,执行拒绝策略并告警。

13、可选的,在所述本地线程池执行所述线程管理策略之后,所

14、述方法还包括:

15、所述客户端将所述本地线程池的运行状态上传到所述服务器。

16、可选的,在所述客户端将所述本地线程池的运行状态上传到所述服务器之后,所述方法还包括:

17、所述服务器根据所述本地线程池的运行状态,判断是否进行告警。

18、本公开的另一个方面提供一种动态可观测线程池管理系统,包括:

19、服务器,用于设置线程池配置;其中,所述线程池配置包括线程管理策略;

20、客户端,用于从所述服务器中获取所述线程池配置,并根据所述线程池配置创建本地线程池;其中,所述本地线程池用于执行所述线程管理策略;

21、提交模块,用于提交任务至所述本地线程池。

22、可选的,所述客户端还用于将所述本地线程池的运行状态上传到所述服务器;

23、所述服务器还用于根据所述本地线程池的运行状态,判断是否进行告警。

24、本公开的实施例的一种动态可观测线程池管理方法及系统,通过在服务器端封装线程池的配置参数,供客户端获取配置,以创建符合标准的线程池,使线程池被合理配置,避免了多种生产事故的产生。

本文档来自技高网...

【技术保护点】

1.一种动态可观测线程池管理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述线程管理策略包括:

3.根据权利要求2所述的方法,其特征在于,当所述本地线程池在运行时,判断核心线程数是否已满,响应于其未满的情况,创建新线程并执行所述任务。

4.根据权利要求3所述的方法,其特征在于,当所述核心线程数已满时,判断任务队列是否已满,响应于其未满的情况,将所述任务添加到任务队列。

5.根据权利要求4所述的方法,其特征在于,当所述任务队列已满时,判断所述本地线程池是否达到最大配置数,响应于其未达到的情况,创建新线程并执行所述任务。

6.根据权利要求5所述的方法,其特征在于,当所述本地线程池达到最大配置数时,执行拒绝策略并告警。

7.根据权利要求1至6任一项所述的方法,其特征在于,在所述本地线程池执行所述线程管理策略之后,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,在所述客户端将所述本地线程池的运行状态上传到所述服务器之后,所述方法还包括:

9.一种动态可观测线程池管理系统,其特征在于,包括:

10.根据权利要求9所述的系统,其特征在于,所述客户端还用于将所述本地线程池的运行状态上传到所述服务器;

...

【技术特征摘要】

1.一种动态可观测线程池管理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述线程管理策略包括:

3.根据权利要求2所述的方法,其特征在于,当所述本地线程池在运行时,判断核心线程数是否已满,响应于其未满的情况,创建新线程并执行所述任务。

4.根据权利要求3所述的方法,其特征在于,当所述核心线程数已满时,判断任务队列是否已满,响应于其未满的情况,将所述任务添加到任务队列。

5.根据权利要求4所述的方法,其特征在于,当所述任务队列已满时,判断所述本地线程池是否达到最大配置数,响应于其未达到的情况,创建...

【专利技术属性】
技术研发人员:赵强
申请(专利权)人:光控特斯联上海信息科技有限公司
类型:发明
国别省市:

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

1