线程的状态 落日映苍穹つ 2024-03-25 20:08 35阅读 0赞 **目录** 1.线程状态的种类 2.线程的状态图 3.状态的详细说明 -------------------- ## 1.线程状态的种类 ## 初始(NEW):新建一个线程,但还没有调用start方法 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态统称为"运行".线程对象创建后,其他线程调用了该对象的start()方法.该状态的线程位于可运行线程池中,等待被线程调度选上,获取cpu使用权,此时处于就绪状态(running),就绪状态的线程在获得cpu时间片后变为运行中状态(running) 阻塞(BLOCKED):线程阻塞于锁,等待锁出现的状态 等待(WAITING):线程要等待其他线程做出一些特定动作(通知或中断),使用wait方法 超时等待(TIMED\_WAITING):在指定时间后返回.sleep方法 终止(TERMINATED):系统中线程执行完,thread对象还在 ## 2.线程的状态图 ## ![46ee503d560543218db230cb3b442e16.png][] ## 3.状态的详细说明 ## #### **1. 初始状态(NEW)** #### 实现Runnable接口和继承Thread可以得到一个线程类,new一个实例出来,线程就进入了初始状态。 #### **2.1. 就绪状态(RUNNABLE之READY)** #### * 就绪状态能运行,但是调度程序没有选中,就永远是就绪状态。 * 调用线程的start()方法,此线程进入就绪状态。 * 当前线程sleep()方法结束,其他线程join()结束,等待用户输入完毕,某个线程拿到对象锁,这些线程也将进入就绪状态。 * 锁池里的线程拿到对象锁后,进入就绪状态。 #### **2.2. 运行中状态(RUNNABLE之RUNNING)** #### 线程调度程序从可运行池中选择一个线程作为当前线程时线程所处的状态。这也是线程进入运行状态的唯一的一种方式。 #### **3. 阻塞状态(BLOCKED)** #### 阻塞状态是线程阻塞在进入synchronized关键字修饰的方法或代码块(获取锁)时的状态。 #### 4. 等待**(WAITING)** #### 处于这种状态的线程不会被分配CPU执行时间,它们要等待被显式地唤醒,否则会处于无限期等待的状态。 #### 5. 超时等待**(TIMED\_WAITING)** #### 处于这种状态的线程不会被分配CPU执行时间,不过无须无限期等待被其他线程显示地唤醒,在达到一定时间后它们会自动唤醒。 #### **6. 终止状态(TERMINATED)** #### * 当线程的run()方法完成时,或者主线程的main()方法完成时,我们就认为它终止了。这个线程对象也许是活的,但是它已经不是一个单独执行的线程。线程一旦终止了,就不能复生。 * 在一个终止的线程上调用start()方法,会抛出java.lang.IllegalThreadStateException异常。 [46ee503d560543218db230cb3b442e16.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/25/1363c5b0800c4d7fa2fab2ad8f43f5c8.png
相关 线程的状态 目录 1.线程状态的种类 2.线程的状态图 3.状态的详细说明 -------------------- 1.线程状态的种类 初始(NEW):新建一个线程,但还 落日映苍穹つ/ 2024年03月25日 20:08/ 0 赞/ 36 阅读
相关 线程状态和线程池状态 线程状态 有六种状态; 新创建(NEW) 可运行(Runnable) 锁阻塞(Blocked) 无线等待(Waiting) 计时等待(Timed Wa 桃扇骨/ 2023年10月06日 14:08/ 0 赞/ 19 阅读
相关 线程的状态 ![在这里插入图片描述][2d280b0176ba4be2ae9f37daba7f7c5d.gif_pic_center] 文章目录 一、线程的所有状态 二 ﹏ヽ暗。殇╰゛Y/ 2023年09月27日 13:09/ 0 赞/ 112 阅读
相关 线程的状态 我百度了一下,有说三种,有说四种,有说五种,有说六种,还有说七种。下边列出六种的说法,六种见的比较多。 这是线程的六种状态 1. 初始(NEW):新创建了一个线程对象, 墨蓝/ 2023年06月07日 05:37/ 0 赞/ 7 阅读
相关 线程的状态 线程的状态 在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于后面对Thread类中的方法的理解。 线程从创建到最终的消亡,要 Dear 丶/ 2022年09月24日 14:22/ 0 赞/ 171 阅读
相关 线程的状态 要想实现多线程,必须在主线程中创建新的线程对象。任何线程一般具有5种状态, 即 创建、就绪、运行、阻塞、终止。线程状态的转移与方法之间的关系如图所示 ![这里写图片描述][ 心已赠人/ 2022年07月21日 02:49/ 0 赞/ 204 阅读
相关 线程的状态 线程对象在不同的运行时期有不同的状态,状态信息就存在于State枚举类中, \ public static enum Thread.State extends En 秒速五厘米/ 2022年06月08日 00:46/ 0 赞/ 205 阅读
相关 线程的状态 Thread源码里定义了6种状态,如下: \ A thread state. A thread can be in one of the follo 川长思鸟来/ 2022年02月15日 13:47/ 0 赞/ 249 阅读
相关 线程的状态 线程共有六种状态 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9 妖狐艹你老母/ 2021年12月19日 00:21/ 0 赞/ 357 阅读
相关 线程的状态 RUNNABLE这个名字很具有欺骗性,很容易让人误以为处于这个状态的线程正在运行。事实上,这个状态只是表示,线程是可运行的。我们已经无数次提到过,一个单核CPU在同一时刻... 朱雀/ 2020年05月12日 15:57/ 0 赞/ 899 阅读
还没有评论,来说两句吧...