java多线程之-线程池状态
1.背景
这一节我们来学习一下线程池状态.....
2.线程池状态
状态名称 | 高3位 | 是否接受新任务 | 是否处理队列中的任务 | 说明 |
RUNNING | 111 | 是 | 是 | 线程池正常运行状态 |
SHUTDOWN | 000 | 否 | 是 | 不接收新的任务,但是会处理完队列中的任务 |
STOP | 001 | 否 | 否 | 会中断正在执行的任务,并且丢弃队列中的任务 |
TIDYING | 010 | 否 | 否 | 任务执行完成,活动线程数为0,即将进入终结状态 |
TERMINATED | 011 | 否 | 否 | 终结状态 |
3.线程池关闭相关API
public static void main(String[] args) { ExecutorService pool = Executors.newFixedThreadPool(2); /** *线程池状态变为 SHUTDOWN *- 不会接收新任务 *- 但已提交任务会执行完 *- 此方法不会阻塞调用线程的执行 */ // pool.shutdown(); /** * 线程池状态变为 STOP * - 不会接收新任务 * - 会将队列中的任务返回 * - 并用 interrupt 的方式中断正在执行的任务 */ // pool.shutdownNow(); // 不在 RUNNING 状态的线程池,此方法就返回 true pool.isShutdown(); // 线程池状态是否是 TERMINATED pool.isTerminated(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人