如何进行ThreadPoolExecutor的keepAliveTime=0说明
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,如何进行ThreadPoolExecutor的keepAliveTime=0说明,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。解释
千家信息网最后更新 2025年12月02日如何进行ThreadPoolExecutor的keepAliveTime=0说明
解释 ThreadPoolExecutor的keepAliveTime=0 。
如何进行ThreadPoolExecutor的keepAliveTime=0说明,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

上图来自《并发编程的艺术》一书,书中有下面一段描述:
""当线程池中的线程数大于corePoolSize时,keepAliveTime 为多余的空闲线程等待新任务的最长时间, 超过这个时间后多余的线程将被终止。这里把keepAliveTime设置为0L,意味着多余 的空闲线程会被立即终止。"
网上很多资料都是说的0表示在空闲的时候线程永久存活。其实是不准确的。
附上验证代码:
public static void main(String[] args) throws InterruptedException {
// 创建了一个线程池
ThreadPoolExecutor executor = new ThreadPoolExecutor(1,
2,
0, TimeUnit.SECONDS,
new LinkedBlockingQueue(1));
for (int i = 0; i < 3; i++) {
executor.execute(new DemoTask(i));
}
while (true) {
System.out.println("总线程数:" + executor.getPoolSize() + ", 当前活跃线程数:" + executor.getActiveCount());
TimeUnit.SECONDS.sleep(1);
}
}
static class DemoTask implements Runnable {
int num;
public DemoTask(int i) {
this.num = i;
}
@Override
public void run() {
System.out.println("num=" + num + " Thread = " + Thread.currentThread().getName());
if (num >= 1) {
try {
TimeUnit.SECONDS.sleep(1);
System.out.println("num=" + num + " sleep 1 s结束");
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
try {
TimeUnit.SECONDS.sleep(3);
System.out.println("num=" + num + " sleep 3 s结束");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
打印结果:
num=2 Thread = pool-1-thread-2
总线程数:2, 当前活跃线程数:2
num=0 Thread = pool-1-thread-1
num=2 sleep 1 s结束
num=1 Thread = pool-1-thread-2
总线程数:2, 当前活跃线程数:2
num=1 sleep 1 s结束
总线程数:1, 当前活跃线程数:1
num=0 sleep 3 s结束
总线程数:1, 当前活跃线程数:1
总线程数:1, 当前活跃线程数:0
总线程数:1, 当前活跃线程数:0
关于如何进行ThreadPoolExecutor的keepAliveTime=0说明问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
线程
空闲
问题
时间
更多
帮助
解答
易行
最长
简单易行
一书
上图
代码
任务
内容
小伙
小伙伴
意味
方法
时候
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全法跨境流动
化学专业数据库中包含了哪些
交通安全数据库管理系统
浪潮超融合服务器虚拟机管理
道德意识是否与软件开发人员相关
国外全文数据库有哪几个
业余软件开发赚钱
华宽通工业园的网络安全公司
人民银行软件开发中心每年招工吗
网络安全你我共筑手抄报
sql在视图里删除数据库
林业一张图数据库代码1631
遥感影像数据库有些什么
有服务器了如何搭建网站
杭州品臻网络技术有限公司
无线网络技术在飞机中应用
搞网络技术的37岁了
上海软件开发总公司
有关于网络安全的绘画作品
java内外网ftp数据库
山东家腾信息软件开发
政府电信网络安全对策
服务器安全技巧
虚拟服务器账号购买
软件工程金融软件开发是什么
pb级数据库
人民银行软件开发中心每年招工吗
数据库角色成员身份
云服务器自动运行脚本
眉山精益管理软件开发