线程池10:线程池的5种状态;

说明:

(1)简介线程池的5种状态;

(2)线程池与线程的几种状态】这篇博客不错,如有需要可以参考;

一:线程池的状态;

已知线程有6种状态,这在【Java线程二:线程的状态;线程的生命周期】中有介绍;

线程池也有不同5种状态;

(1)RUNNING;

          ● 线程池处于RUNNING状态时,线程池能够接收新任务,也能够对已经添加的任务进行处理;

          ● 线程池一被创建,线程池的状态就是RUNNING状态;

(2)SHUTDOWN;

          ● 线程池已经被关闭了,不再接收新任务;但是,其还是会处理队列中的剩余的任务;

          ● 调用线程池的shutdown()方法后,线程池的状态就会由RUNNING转为SHUTDOWN;

(3)STOP;

          ● 线程池处于STOP状态,此时线程池不再接收新任务,不处理已经添加进来的任务,并且会中断正在处理的任务; 

          ● 调用线程池的shutdownNow()方法后,线程池的状态就会由RUNNING或SHUTDOWN转为STOP;

(4)TIDYING;

          ● 线程池被下达关闭命令后,如果当前所有的任务都已经终止了(这个终止可以表示执行结束,也可以表示强制中断,也可以表示被丢弃) ,那么线程就会进入TIDYING状态;当线程池变为TIDYING状态时,会执行钩子函数terminated()。terminated()在ThreadPoolExecutor类中是空的,若用户想在线程池变为TIDYING时,进行相应的处理;可以通过重载terminated()函数来实现。

          ● 如果线程状态已经是SHUTDOWN了,并且线程中以及队列中都没有任务时,线程池就会由SHUTDOWN转为TIDYING;如果线程池状态为STOP,那么当线程池把所有的任务都给清理干净时,线程池就会由STOP转为TIDYING;

(5)TERMINATED;

          ● 线程池就结束了;线程池就不能重新启动了;

          ● 如果线程池处于TIDYING状态,那么当线程池执行完terminated()方法后,线程池状态就会由TIDYING转为TERMINTED;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值