首页 > 分享 > ThreadPoolExecutor的keepAliveTime=0说明

ThreadPoolExecutor的keepAliveTime=0说明

最新推荐文章于 2022-10-27 11:00:22 发布

互联网全栈架构 于 2021-01-04 16:35:23 发布

点击上方☝,轻松关注!及时获取有趣有料的技术文章

如题,如下图,解释 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<Runnable>(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

 任务一执行完,大 于 corePoolSize 数的空闲线程立马嗝屁。

本篇完~

相关知识

多线程进阶 => JUC并发编程(已完结,但图片未提交)
Python实例(六)
贝塔=0说明是无系统风险,会计基础上不是讲系统风险不能规避吗?
接入说明
设5阶行列式 1 1 0 0 0 1 2 0 0 0 D=0x2+x3 x3+x
配送说明
for (let i = 0; i < haystack.length; i++)
裱花蛋糕工艺流程图和说明
c语言数组初始化——int a[N] = {0};
生产花卉的园艺设施有哪些?请说明特点。

网址: ThreadPoolExecutor的keepAliveTime=0说明 https://m.huajiangbk.com/newsview1054802.html

所属分类:花卉
上一篇: jvm层gc调优
下一篇: 什么时候扦插迎春花成活率比较高?