iso file download
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202111663408.3 (22)申请日 2021.12.3 0 (71)申请人 北京致远互联软件股份有限公司 地址 100089 北京市海淀区北坞村路甲25 号静芯园N座 (72)发明人 李强 宋牮 陈宪斌 彭滨  (74)专利代理 机构 北京权智天下知识产权代理 事务所(普通 合伙) 11638 专利代理师 高丽红 (51)Int.Cl. G06F 9/50(2006.01) (54)发明名称 一种Java线程池动态扩容缩容方法 (57)摘要 本发明公开了一种Java线程池动态扩容缩 容方法, 包括以下步骤: A、 采集线 程池度量数据; B、 分析线程池度量数据; C、 线程池自动扩缩容, 本发明旨在基于线程池的度量来实现线程池参 数的动态扩容和缩容机制, 基于用户设置的阀值 不需要人工介入调整线程池, 降低人工维护成本 和出错机率, 能够及时调整线程池, 获得更高的 吞吐量。 权利要求书1页 说明书3页 附图1页 CN 114490040 A 2022.05.13 CN 114490040 A 1.一种Java线程池动态扩容缩容方法, 其特 征在于: 包括以下步骤: A、 采集线程池度量数据; B、 分析线程池度量数据; C、 线程池自动扩 缩容。 2.根据权利要求1所述的一种Java线程池动态扩容缩容方法, 其特征在于: 所述步骤A 具体如下: 对线程池的度量指标进 行实时观测, 并定时采样记录, 通过对J ava线程池进 行扩 展和埋点, 得到了关键指标的度量数据。 3.根据权利要求1所述的一种Java线程池动态扩容缩容方法, 其特征在于: 所述步骤B 具体如下: 通过利用一些时间序列数据库将这些指标数据保存起来, 再利用分析工具对它 们进行分析。 4.根据权利要求1所述的一种Java线程池动态扩容缩容方法, 其特征在于: 所述步骤C 具体如下: 用户通过设置度量指标调优阀值 来自动进行线程池的线程数调大或调小。 5.根据权利要求4所述的一种Java线程池动态扩容缩容方法, 其特征在于: 所述步骤C 中还可以根据任务处理/请求速率、 任务忙闲比等更加 合理的度量指标阀值来进行动态线 程池的调大或调小。权 利 要 求 书 1/1 页 2 CN 114490040 A 2一种Java线 程池动态扩容 缩容方法 技术领域 [0001]本发明涉及Java技 术领域, 具体为 一种Java线程池动态扩容缩容方法。 背景技术 [0002]多线程是我们常用的并发编程工具, 也是性能优化在多核处理器时代常用的手 段。 线程池可以减少系统在创建和销毁线程上所花的时间,充分利用服务器的多核资源, 为 用户带来更 快的响应时间和更高的任务吞吐量。 [0003]Java语言就提供了原生线程池的实现, 使得用户在编程方面创建一个多线程任务 执行线程池的任务简单不少, 但线程池的设置是否合理与任务类型、 系统CPU资源息息相 关。 一但参数设置不合理要么忙死, 要么闲死。 Java提供的原生线程池的工作机制如图2所 示。 [0004]Java线程池在内部实际上构建了一个任务生产者和消费者模型, 将线程和任务两 者解耦, 并不直接关联, 从而使得任务可排队缓冲执行, 复用线程。 线程池的运行主要分成 两部分: 任务调 度、 线程分配。 任务调 度部分是生产者角色, 当任务提交以后, 线程池会判断 该任务后续的流 转: [0005](1)直接申请线程执 行该任务; [0006](2)缓冲到阻塞队列中等待执 行; [0007](3)拒绝执 行。 [0008]线程分配部分是消费者角色, 它们被统一维护在线程池内, 根据任务请求进行线 程的分配, 当线程执行完任务后则会继续获取新的任务去执行, 最终当线程获取不到任务 的时候, 空 闲一段时间, 线程 就会被回收。 [0009]虽然Java语言提供的原生线程池实现, 使得我们创建和使用线程池的代价大大降 低。 但是在实践中我们并不知道如何创建一个高效的Java原生线程池, 怎样才能设置合理 的线程池参数, 进 行有的放矢地优化。 通常CPU密集型的任务占用CPU时间较长, 线程数可以 设置小一点, I/O密集型的任务占用CPU时间较 短, 线程数可以设置大一点。 这些都是为了充 分利用到我们的CPU资源。 在业界针对线程池的如何得到一个合理的线程数设置, 有一个经 验公式即: 线程数=CPU核数*期望CPU使用率*(1+等待时间/处理时间)。 但是我们认 为一个 线程池的实现应该更加智能, 能够基于度量, 来 实时动态改变线程池的线程数, 以最大化的 合理使用CPU资源, 减少任务被拒绝执行的数量, 减少 线程池人工维护成本。 目前Java语言 提供的原生线程池实现以及一些厂 商提供的动态可配置的线程池实现存在 如下缺点: [0010](1)Java提供的原生线程池实现参数一旦设置便不能改变, 动态线程池的能力需 要用户自己扩展, 且没有给 出线程池度量指标模型。 [0011]一些扩展Java线程池实现的动 态线程池同样缺少合理的度量模型, 线程池的扩容 和缩容需要手动调整, 增 加了线程池的人工维护成本和出错机率。说 明 书 1/3 页 3 CN 114490040 A 3

.PDF文档 专利 一种Java线程池动态扩容缩容方法

文档预览
中文文档 6 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共6页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种Java线程池动态扩容缩容方法 第 1 页 专利 一种Java线程池动态扩容缩容方法 第 2 页 专利 一种Java线程池动态扩容缩容方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-19 01:58:40上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。