Java 线程的状态


thread.state
枚举了6种状态,对应操作系统线程的7种状态
枚举把 就绪 ready 和 运行 Running 合并成 runnable 可运行
--------------------------------
1.NEW 新建状态
  通过 new 创建了一个线程对象
--------------------------------
2.READY 就绪状态
调用了线程的 start(),该线程进入可运行线程池,等待分配 cpu
---------
    阻塞状态 --> 就绪状态
      拿到锁之后
      IO阻塞结束
---------
    运行状态 --> 就绪状态
      当前线程的执行时间片用完了
      调用 yield() 方法,释放 cpu
---------
    等待状态 --> 就绪状态
      等待的线程被其他线程 notify() / notifyAll() 唤醒
      对其他线程 join() 操作结束
      locksupport.unpark()
---------
    限时等待状态 --> 就绪状态
      调用 join(long) 方法,其他线程结束之后
      等待的线程被其他线程 notify()/notifyAll() 唤醒
      超时时间到 sleep(long) / wait(long) / join(long) / parkNanos() / parkUntil()
-----------------------   
3.RUNNING 运行状态
就绪状态的线程被线程调度程序选中后,分配 CPU,进入 run()
-----------------------
4.BLOCKED 阻塞状态 - 释放 cpu, 随时可能转就绪
运行的线程获取锁失败, 进入锁池
IO 阻塞
-----------------------
5.WAITING 等待状态 - 释放 cpu,需要被唤醒才会转就绪
调用了 wait(),进入等待池
调用了 join()
locksupport.park()
-----------------------
6.TIMED_WAITING 限时等待状态 - 指定时间内没有被唤醒,就被系统自动唤醒
运行的线程调用了 sleep(long) wait(long) join(long) parkNanos() parkUntil()
-----------------------
7.TERMINATED 终止状态
线程执行完了或异常终止
-----------------------
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我三师弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值