线程池的shutdown和shutdownnow的区别

发布时间:2024年01月04日

1、先说结论

shutdown ---- 不再接收新的任务,但是已经在执行中和队列中的任务会等待执行完成, 对workers中空闲的线程执行interrupt

shutdownnow ---- 不再接收新的任务,清空队列的任务,对works中所有的线程执行interrupt(),会返回没有执行的runnable任务

2、代码实战

模拟场景:线程池 核心线程1,队列20,submit10个任务,执行的过程中执行shutdown和shutdownnow

shutdown:
在这里插入图片描述
在这里插入图片描述
可以看到 已经提交的任务会等待执行完成,无法新提交任务

shutdownnow:
在这里插入图片描述
在这里插入图片描述
可以看到只有一个任务执行完成,其他已提交的任务没有执行

在这里插入图片描述

文章来源:https://blog.csdn.net/lbh199466/article/details/135389894
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。