当前位置: 首页 > news >正文

动态修改线程池参数

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;/*** 动态线程池*/
public class DynamicThreadPool extends ThreadPoolExecutor {private final Object lock = new Object();private int minPoolSize;public DynamicThreadPool(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit,BlockingQueue<Runnable> workQueue) {super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);this.minPoolSize = corePoolSize;}public DynamicThreadPool(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory) {super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory);this.minPoolSize = corePoolSize;}/*** 设置新的核心线程数*/public void setCorePoolSize(int newCorePoolSize) {if (newCorePoolSize < 0) {throw new IllegalArgumentException("核心线程数不能为负数");}if (newCorePoolSize > getMaximumPoolSize()) {throw new IllegalArgumentException("核心线程数不能大于最大线程数");}synchronized (lock) {this.minPoolSize = newCorePoolSize;super.setCorePoolSize(newCorePoolSize);}}/*** 设置新的最大线程数*/public void setMaximumPoolSize(int newMaximumPoolSize) {if (newMaximumPoolSize <= 0) {throw new IllegalArgumentException("最大线程数必须为正数");}if (newMaximumPoolSize < getCorePoolSize()) {throw new IllegalArgumentException("最大线程数不能小于核心线程数");}synchronized (lock) {super.setMaximumPoolSize(newMaximumPoolSize);}}/*** 获取最小线程数*/public int getMinPoolSize() {return minPoolSize;}
}

 

http://www.zskr.cn/news/6226.html

相关文章:

  • 什么是网络+HTTP详解
  • 黑白世界
  • 【大三下】资料,仅内部学习使用
  • 挖掘PDF生成器中的SSRF漏洞:从发现到利用
  • 做题记录 2
  • c# ConcurrentDictionary
  • 核桃OJ【S组 第二轮】信息学竞赛10w选手模拟考
  • 第一次个人编程作业
  • 数学分析习题课 note
  • 洞察中国HR SaaS薪酬市场:2025企业数字化转型中的选型策略
  • 9.16 一些记录
  • 溢出存储变量
  • retrieving repo key for OS unencrypted from
  • 3. Explain详解与索引最佳实践
  • 软工个人项目作业
  • 表格如何设置多人在线编辑?坚果云实时编辑,告别版本冲突!
  • 白嫖党狂喜!爆肝一下午搞定 URL 转 HTML 幻灯片神器,ISlide 9900 资源点从此是路人
  • 22222222 - idle
  • 继承
  • HyperWorks许可监控
  • ThreadLocal
  • 我的大学规划
  • 理解 Linux 系统中的熵(Entropy)
  • ubuntu 18.04安装mysql8.4.5
  • Radxa E20C 安装 OpenWrt
  • 《ESP32-S3使用指南—IDF版 V1.6》第三十八章 SPIFFS实验
  • 神秘题
  • SQL Server 中的 STUFF 函数与FOR XML PATH详解 - 实践
  • 2025/9/16 总结
  • 2025ICPC网络赛第一场(A,B,C,D,G,I,M)