Java线程的六种状态

  1. New新创建
  2. Runnable可运行
  3. Blocked被阻塞
  4. Waiting等待
  5. Timed waiting计时等待
  6. Termminated被终止

1、新创建线程
使用new创建一个线程,该线程还没有开始运行,在运行前还有一些基础工作要做。
2、可运行线程
调用start方法,线程处于可运行状态。一个Runnable线程即可能正在运行也可能没有运行,取决于操作系统给该线程提供运行的时间。
3、被阻塞线程
一个线程尝试获取一个对象的内部锁时(synchronized 关键字,ReentrantLock等包含阻塞),而该锁被其他线程持有,进入被阻塞状态。直到其他线程释放该锁,线程调度器允许使用该锁时,该线程变为非阻塞状态。
此状态下不允许任何代码,消耗最少资源。
4、等待线程
一个线程(synchronized中调用了不带时限的wait,以及join,park等方法,以及等待Lock或不满足Conditon的条件调用了await)等待另一个线程通知调度器一个条件时(notify或notifyAll方法,或者等待join指定的线程结束,signal或signalall方法),跳出等待状态,等带锁的线程执行完毕,去竞争锁:竞争到锁,进入Runnable状态,没有竞争到锁,进入Blocked状态。
5、计时等待
Thread.sleep,Object.wait等设有超时参数,调用他们进入计时等待。
6、被终止

  • 因run方法正常退出而自然死亡
  • 因为一个没有被捕获的异常终止run方法意外死亡。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值