线程的状态 小灰灰 2023-05-28 12:57 15阅读 0赞 我们打开Thread类的源码,搜索State字段,会看到State的枚举值 public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a runnable thread. A thread in the runnable * state is executing in the Java virtual machine but it may * be waiting for other resources from the operating system * such as processor. */ RUNNABLE, /** * Thread state for a thread blocked waiting for a monitor lock. * A thread in the blocked state is waiting for a monitor lock * to enter a synchronized block/method or * reenter a synchronized block/method after calling * {@link Object#wait() Object.wait}. */ BLOCKED, /** * Thread state for a waiting thread. * A thread is in the waiting state due to calling one of the * following methods: * <ul> * <li>{@link Object#wait() Object.wait} with no timeout</li> * <li>{@link #join() Thread.join} with no timeout</li> * <li>{@link LockSupport#park() LockSupport.park}</li> * </ul> * * <p>A thread in the waiting state is waiting for another thread to * perform a particular action. * * For example, a thread that has called <tt>Object.wait()</tt> * on an object is waiting for another thread to call * <tt>Object.notify()</tt> or <tt>Object.notifyAll()</tt> on * that object. A thread that has called <tt>Thread.join()</tt> * is waiting for a specified thread to terminate. */ WAITING, /** * Thread state for a waiting thread with a specified waiting time. * A thread is in the timed waiting state due to calling one of * the following methods with a specified positive waiting time: * <ul> * <li>{@link #sleep Thread.sleep}</li> * <li>{@link Object#wait(long) Object.wait} with timeout</li> * <li>{@link #join(long) Thread.join} with timeout</li> * <li>{@link LockSupport#parkNanos LockSupport.parkNanos}</li> * <li>{@link LockSupport#parkUntil LockSupport.parkUntil}</li> * </ul> */ TIMED_WAITING, /** * Thread state for a terminated thread. * The thread has completed execution. */ TERMINATED; } 从源码了解到线程有6个状态 ## NEW(新建) ## 创建后尚未启动的线程的状态(创建之后还未调用start方法) ## RUNNABLE(运行) ## 调用start的方法之后,线程进入RUNNABLE状态 RUNNABLE即允许状态, RUNNABLE包含Running和Ready 处于Running状态的线程位于可运行线程之中,等待被线程调度选中, 获取CPU的使用权 处于Ready状态的线程位于线程池中,等待被线程调度选中,获取CPU的使用权。而处于Ready状态的线程在获得CPU时间后,就变为Running状态的线程 ## WAITING(无限等待) ## 处于WAITING状态的线程不会被分配CPU执行时间,需要被其他线程唤醒 以下几种方法会让线程处于无限期的等待状态 没有设置Timeout参数的Object.wait()方法 没有设置Timeout参数的Thread.join()方法 LockSupport.park()方法 ## TIMED\_WAITING(限期等待) ## 在一定时间后由系统自动唤醒 以下方法会让线程进入限期等待 Thread.sleep()方法 设置了Timeout参数的Object.wait()方法 设置了Timeout参数的Thread.join()方法 LockSupport.partNanos()方法 LockSupport.parkUntil()方法 ## BLOCKED(阻塞) ## 等待获取排它锁 线程被阻塞了,阻塞状态与等待状态的区别是,阻塞状态在等待着获取到一个排它锁,这个事件将向另外一个线程放弃这个锁的时候发生,而等待状态一般时间或者有唤醒动作的时候发生,在程序进入同步区域的时候,线程将进入BLOCKED状态。比如说某个线程进入synchronized关键字修饰的方法或者代码块的时候,即获取锁去执行的时候,其他想进入此方法或者代码块的线程只能等待 ## TERMINATED(结束) ## 已终止线程的状态, 线程已经结束执行
相关 线程的状态 在Java中线程共分为6中状态: 1. NEW:创建好一个Java的Thread对象,并安排好了任务,没有调用start()方法,和PCB没有关系 1. RUNNABL 缺乏、安全感/ 2024年03月30日 14:38/ 0 赞/ 107 阅读
相关 线程状态和线程池状态 线程状态 有六种状态; 新创建(NEW) 可运行(Runnable) 锁阻塞(Blocked) 无线等待(Waiting) 计时等待(Timed Wa 桃扇骨/ 2023年10月06日 14:08/ 0 赞/ 100 阅读
相关 线程的状态 ![在这里插入图片描述][2d280b0176ba4be2ae9f37daba7f7c5d.gif_pic_center] 文章目录 一、线程的所有状态 二 ﹏ヽ暗。殇╰゛Y/ 2023年09月27日 13:09/ 0 赞/ 159 阅读
相关 线程的状态 我百度了一下,有说三种,有说四种,有说五种,有说六种,还有说七种。下边列出六种的说法,六种见的比较多。 这是线程的六种状态 1. 初始(NEW):新创建了一个线程对象, 墨蓝/ 2023年06月07日 05:37/ 0 赞/ 62 阅读
相关 线程的状态 线程的状态 在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于后面对Thread类中的方法的理解。 线程从创建到最终的消亡,要 Dear 丶/ 2022年09月24日 14:22/ 0 赞/ 238 阅读
相关 线程的状态 要想实现多线程,必须在主线程中创建新的线程对象。任何线程一般具有5种状态, 即 创建、就绪、运行、阻塞、终止。线程状态的转移与方法之间的关系如图所示 ![这里写图片描述][ 心已赠人/ 2022年07月21日 02:49/ 0 赞/ 268 阅读
相关 线程的状态 线程对象在不同的运行时期有不同的状态,状态信息就存在于State枚举类中, \ public static enum Thread.State extends En 秒速五厘米/ 2022年06月08日 00:46/ 0 赞/ 263 阅读
相关 线程的状态 Thread源码里定义了6种状态,如下: \ A thread state. A thread can be in one of the follo 川长思鸟来/ 2022年02月15日 13:47/ 0 赞/ 307 阅读
相关 线程的状态 线程共有六种状态 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9 妖狐艹你老母/ 2021年12月19日 00:21/ 0 赞/ 414 阅读
相关 线程的状态 RUNNABLE这个名字很具有欺骗性,很容易让人误以为处于这个状态的线程正在运行。事实上,这个状态只是表示,线程是可运行的。我们已经无数次提到过,一个单核CPU在同一时刻... 朱雀/ 2020年05月12日 15:57/ 0 赞/ 939 阅读
还没有评论,来说两句吧...