当前位置: 首页 > 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.wxhsa.cn/company.asp?id=5937

相关文章:

  • 力扣70题 爬楼梯
  • PHP(Laravel)+ ImageMagick + Tesseract 实现验证码识别
  • Windows下使用python + opencv读取含中文路径的图片 和 把图片数据保存到含中文路径下
  • 黑白世界
  • 在 PHP 中,$_GET
  • 在 ThinkPHP DB
  • 什么是网络+HTTP详解
  • 快速管理win系统上的用户
  • redis实现全局唯一id
  • 表格识别技术:“唤醒”沉睡在纸质文档中的海量结构化数据
  • 【大三下】资料,仅内部学习使用
  • fastboot工具的常见命令
  • 《软件需求最佳实践》阅读笔记一
  • 挖掘PDF生成器中的SSRF漏洞:从发现到利用
  • 做题记录 2
  • 计数原理与排列组合
  • 9.16动态用例设计方法 笔记
  • 深入解析:ESP32三种主流的开发环境
  • js
  • 9.16电商状态迁移图
  • c# ConcurrentDictionary
  • 核桃OJ【S组 第二轮】信息学竞赛10w选手模拟考
  • 第一次个人编程作业
  • 【初赛】软件系统 - Slayer
  • 漏洞详解--XXE 从入门到精通!
  • 数学分析习题课 note
  • 总结-CDQ 分治
  • 【初赛】计算机语言 - Slayer
  • 深入浅出RocketMQ客户端编程
  • Win10玩LOL弹窗