美文网首页
java线程状态及转换

java线程状态及转换

作者: 瓢鳍小虾虎 | 来源:发表于2021-07-24 16:26 被阅读0次

java线程状态:new(新建),runnable(就绪),running(运行),blocked(阻塞),dead(死亡)


新建状态(new):Thread被new出来就是新建状态。
就绪状态(runnable):执行Thread.start()方法会使线程进入就绪状态。
运行状态(running):当就绪状态的线程被cpu调度执行的时候就进入运行状态。
阻塞状态(blocked):线程由于某种原因,放弃了对cpu使用的权利,使其暂停执行,知道再次进入就绪状态才会被cpu调度。线程由运行态变成阻塞态的原因有以下三种场景:

  1. 等待阻塞:调用obj.wait()的时候线程会进入阻塞状态。
  2. 并发阻塞:比如线程争抢synchronized同步锁没成功的时候会进入阻塞状态。
  3. 其他阻塞:线程执行过程中调用了Thread.sleep()、Thread.join或者执行了IO操作都会使当前线程进入阻塞状态。
    死亡状态(dead):线程执行完毕或者发生异常。线程生命周期结束。

常用线程函数

sleep():当前正在执行的线程暂停执行一段时间。
subThreadxxx.join():当前主线程暂停,等待子线程subThreadxxx执行完主线程再继续执行。
yield():使当前线程由运行状态转为就绪状态。注意如果没有其他线程抢占cpu资源,该线程会接着回到运行状态。
interrupt():不要错以为这个是用来直接中断线程。他是用来向线程发出中断信号,如果线程一直在wait(死锁),则抛出异常,线程dead,当然如果你把这个异常catch了还是不会影响到当前线程。
wait()和notify():obj.wait()和obj.notify()都要在synchronize(obj){}代码段里使用。wait就是说线程在获取对象锁后,主动释放对象锁,同时本线程休眠。直到有其它线程调用对象的notify()唤醒该线程,才能继续获取对象锁,并继续执行。notify()就是对对象锁的唤醒操作。但有一点需要注意的是notify()调用后,并不是马上就释放对象锁的,而是在相应的synchronized(){}语句块执行结束,自动释放锁后,JVM会在wait()对象锁的线程中随机选取一线程,赋予其对象锁,唤醒线程,继续执行。这样就提供了在线程间同步、唤醒的操作。
wait和sleep区别:sleep不释放锁,wait释放锁。线程被sleep和wait的时候都可以被interrupt打断而抛出异常(注意这个异常是线程抛出的不是interrupt抛出的),虽然不建议这么做。

参考文章:
java线程状态

相关文章

  • JAVA多线程及线程状态转换

    Java多线程及线程状态转换 - 祖华 - 博客园

  • Java 线程的七种状态

    本篇感性地介绍一下 Java 线程的七种状态以及状态之间的转换 Java 线程状态转换图 Java 线程状态 在 ...

  • java线程状态及转换

    java线程状态:new(新建),runnable(就绪),running(运行),blocked(阻塞),dea...

  • Java 线程的状态及状态转换

    通用的线程周期 操作系统中,线程的状态一般包含以下五种:初始状态、可运行状态、运行状态、休眠状态、终止状态 初始状...

  • 面试小结之并发篇

    最近面试一些公司,被问到的关于Java并发编程的问题,以及自己总结的回答。 Java线程的状态及如何转换。 多个线...

  • Java线程状态及其转换

    线程状态及其转换 一、线程状态 Java中定义线程的状态有6种,可以查看Thread类的State枚举: 初始(N...

  • Java线程状态转换

    线程状态类型 在java.long.Thread类的内部定义了一个枚举 新建状态(NEW) 就绪状态(RUNNAB...

  • JAVA线程生命周期

    JAVA线程生命周期 摘要 本文详细总结了java线程的五种基本状态,和状态之间的转换关系;介绍了常见了创建线程的...

  • java线程之一(基础知识总结)

    目录 1、线程的概念 2、创建线程的方法 3、线程的状态及转换 4、线程的主要方法 ---------------...

  • 2018-11-11

    如何新建一个线程? 线程状态是怎样转换的? 关于线程状态的操作是怎样的? 1. 新建线程 一个java程序从mai...

网友评论

      本文标题:java线程状态及转换

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