线程池的状态

线程的状态

我们都知道线程的状态 可以分为 创建(NEW)、运行(RUNNABLE)、阻塞(BLOCK)、等待(WAITING/TIMED-WAITING)和结束(TERMINATED)

线程池状态

线程是线程池的一部分,线程的状态和线程数量决定着线程池的状态,Java把线程池的状态分为五种:

  • 运行(RUNNING):该状态下的线程池接收新任务并处理队列中的任务;线程池创建完毕就处于该状态,也就是正常状态;
  • 关机(SHUTDOWN):线程池不接受新任务,但处理队列中的任务;线程池调用shutdown()之后的池状态;
  • 停止(STOP):线程池不接受新任务,也不处理队列中的任务,并中断正在执行的任务;线程池调用shutdownNow()之后的池状态;
  • 清理(TIDYING):线程池所有任务已经终止,workCount(当前线程数)为0;过渡到清理状态的线程将运行terminated()钩子方法;
  • 终止(TERMINATED):当线程池处于SHUTDOWN或STOP状态,并且所有工作线程已经销毁,任务缓存队列已经清空或执行结束后,线程池被设置为TERMINATED状态,terminated()方法结束后的线程池状态;

yu851H.png

ThreadPoolExecutor

ThreadPoolExecutor就是我们口中常说的线程池

ThreadPoolExecutor 用一个AtomicInteger变量ctl来表示,变量ctl可以说明线程池的两个属性:工作线程数(workerCount)和运行状态(runState);,另外定义了几个static final变量表示线程池的各个状态。

AtomicInteger是int类型的原子包装类,最大的特点就是线程安全,所以其本质上还是个int值;那么int类型是4个字节&#x

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值