多线程6中状态间的转换

Java多线程6种状态的转换

  1. NEW(新建) 创建线程对象时
  2. Runnable(可运行) 线程可以在Java虚拟机上运行的状态,可能是正在运行,也可能是在等待CPU资源,简单来说就是调用了start方法
  3. Blocked(锁阻塞) 当线程要获取一个对象锁,但是这个对象锁正在被其他线程占用,则该线程进入阻塞状态;当该线程获取到对象锁时就会变成可运行状态
  4. Waiting(无限等待) 线程调用wait()方法,进入Waiting状态,在这个状态下,线程是不能自动醒来的,只能等待另一个线程调用notify()/notifyAll()方法来唤醒自己(注意:调用wait()和notify()方法的必须要是同一个对象)
  5. Timed Waiting(计时等待) 调用sleep()方法或wait(long timeout)方法时进入Timed Waiting状态,如果是sleep()方法,时间到了会结束该状态,如果是wait(long timeout),时间到了或者被其他线程唤醒,就会结束该状态
  6. Teminated(被终止) 线程run方法执行完毕而正常终止,或者执行出现没有捕获的异常而导致的异常终止

这是线程6中状态转换图解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值