美文网首页
Java线程的几种状态

Java线程的几种状态

作者: 感召的鳞 | 来源:发表于2020-06-20 22:49 被阅读0次
  1. 新建(New):线程对象已经产生但是未启动,

如通过new产生一个线程对象,但是未调用start()之前

  1. 就绪(Runnable):每个多线程系统都有排程器,排程器会从线程池中选择一个线程并启动他,当一个线程处于可执行状态时,表示它可能正处于线程池中等待排程器启动他。

如执行了start()方法以后,线程就处于可执行状态了。

  1. 运行(running):已经获取到CPU资源,正在执行run方法

当前线程的时间片如果被cpu抢占的话就变成就绪状态

  1. 死亡(dead):当一个线程正常结束,便处于死亡状态,

如一个线程的run()函数执行完毕以后这个线程就进入死亡状态

  1. 阻塞(blocked):当一个线程处于阻塞状态时,系统排程器就会忽略他,不对他进行排程。当处于阻塞状态的线程重新回到可执行状态时,它才可能重新执行。

如通过对一个线程调用wait()函数后,线程就进入阻塞状态,只有再次调用notify或notifyAll后才能回到可执行状态

阻塞本身分为几种

  • 等待阻塞:线程执行了wait,JVM会把当前线程放入等待队列
  • 同步阻塞:线程在获取对象锁的时候,如果该同步锁被其他线程占用,则JVM会把当前线程放入锁池中
  • 其他阻塞:运行的线程执行sleep(),join()或者发出IO请求时,JVM会把当前线程设置为阻塞状态,当sleep()执行完,join()线程终止,IO处理完毕线程再次恢复
image.png

Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别

相关文章

  • java线程状态

    java的线程状态包括以下几种: NEW 线程创建的初始状态。 RUNABLE 线程正在执行。 注意这里是java...

  • Java并发和并行

    1. Java线程的创建和运行 2. Java 线程的几种状态 NEW:初始状态,线程被构建,但是还没有调用s...

  • Java面试踩坑集锦

    1.Java线程有几种状态,分别是什么? 线程的状态定义在java.lang.Thread.State下有一个eu...

  • Java线程的几种状态

    新建(New):线程对象已经产生但是未启动, 如通过new产生一个线程对象,但是未调用start()之前 就绪(R...

  • Java多线程:线程状态

    # 面试题 Java中线程有哪几种状态,线程的生命周期。 每个状态的含义。 状态之间的转化过程以及触发条件,图示。...

  • Java线程中的几种状态

    线程在一定条件下,状态会发生变化。线程一共有以下几种状态: 1、新建状态(New):新创建了一个线程对象。 2、就...

  • 线程状态

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

  • Java 实现线程的方式有几种方式?带有返回值的线程怎么实现?

    Java 实现线程的方式有几种方式?带有返回值的线程怎么实现? 在Java线程开发中,有几种方法开启线程?假如需要...

  • JVirtualVM 中线程有以下几种状态

    在 java 自带的工具 JVirtualVM 中线程有以下几种状态: 先说结论,各状态含义如下,后面有详细的 d...

  • 常见面试题--线程有几种状态?

    常见面试题--线程有几种状态? 在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。 第一是创建状...

网友评论

      本文标题:Java线程的几种状态

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