美文网首页
线程的六种状态及其生命周期

线程的六种状态及其生命周期

作者: DH大黄 | 来源:发表于2020-05-18 10:47 被阅读0次

线程的六种状态及其生命周期

  • New:新建线程,未执行start方法
  • Runnable:可运行/运行中的状态
    • 正在运行
    • 运行前等待CPU分配资源
    • 已经拿到CPU资源,运行到一半,CPU资源被分配给其他线程,等待分配CPU资源
  • Blocked:进入synchronized修饰的代码块,锁(monitor)已经被其他线程拿走,线程拿不到锁。只针对synchronized
  • Waiting:没有设置timeout参数的object.wait()方法
  • Timed Waiting:计时等待
  • Terminated:已终止

线程六种状态切换图(其中 阻塞状态:BLOCKED,WAITING,TIME_WAITING)

不遵循下图的两种情况

  • Object.wait()状态被唤醒后(很大一部分情况下是获取不到锁的,因为唤醒它的线程需要持有同一把锁,唤醒它的线程完成唤醒动作后可能还没有执行完synchronzed代码块),所以当前线程先进入Blocked状态,抢到锁后再进入Runnable状态
  • 在wait期间发生异常,不用先进入Runnable,直接跳到Terminated状态
线程的六种状态

相关文章

  • 线程的六种状态及其生命周期

    线程的六种状态及其生命周期 New:新建线程,未执行start方法 Runnable:可运行/运行中的状态正在运行...

  • 线程的生命周期及其六种状态的转换

    线程的六种状态 线程的生命周期主要有以下六种状态: New(新创建) Runnable(可运行) Blocked(...

  • Java线程生命周期

    Java线程生命周期有六种状态: 新建状态(New) 就绪状态(Runnable) 运行状态(Running) 阻...

  • 线程问题怎么排查

    线程状态的定义 可见在 JDK 中定义的线程状态总共六种,各状态在特定条件下可以转换,其组成了一个线程的生命周期,...

  • 线程状态

    六种状态 Java线程在运行的生命周期内可能处于以下几种状态 ,在给定的某一时刻,线程只能处于一种状态. 状态变迁

  • 线程共享和协作(三):如何实现线程间协作

    线程的状态 万事万物都有其自己的生命周期和状态,一个线程从创建到结束被销毁也有其自己的六种状态,而wait、not...

  • 线程间的协作方法(wait、notify、sleep、yield

    线程的状态 万事万物都有其自己的生命周期和状态,一个线程从创建到结束被销毁也有其自己的六种状态,而wait、not...

  • 并发编程——Java线程的6种状态及切换

    前言 本次主要分享一下Java线程的六种状态及其转换。 如果对于线程的创建方式不太了解,推荐观看并发编程——认识j...

  • java多线程

    线程六种状态 New:尚未启动的线程的线程状态(new Thread) Runnable:可运行线程的线程状态,等...

  • 线程的学习总结

    我打算从线程得生命周期开始总结多线程: 线程的生命周期: 新建状态:线程对象创建之后,线程进入新建状态. 就绪状态...

网友评论

      本文标题:线程的六种状态及其生命周期

      本文链接:https://www.haomeiwen.com/subject/agtuohtx.html