线程的生命周期

线程的状态
线程的状态:也就是线程从生到死的过程,以及中间经历的各种状态及状态转换。
理解线程的状态有利于提升并发编程的理解能力。

Java线程的状态
Java总共定义了6种状态
6种状态都定义在Thread类的内部枚举类中。

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Thread{
     ...     
    public enum State {        
        NEW,       
        RUNNABLE,      
        BLOCKED,       
        WAITING,       
        TIMED_WAITING,     
        TERMINATED;
    }
     ...
}
                    

线程的6种状态总结

NEW(新建)
线程刚被创建,但是并未启动。
Runnable(可运行)
线程已经调用了start()等待CPU调度
Blocked(锁阻塞)
线程在执行的时候未竞争到锁对象,则该线程进入Blocked状态;。
Waiting(无限等待)
一个线程进入Waiting状态,另一个线程调用notify或者notifyAll方法才能够唤醒
Timed Waiting(计时等待)
同waiting状态,有几个方法有超时参数,调用他们将进入Timed Waiting状态。带有超时参数的常用方法有Thread.sleep 、Object.wait。
Teminated(被终止)
因为run方法正常退出而死亡,或者因为没有捕获的异常终止了run方法而死亡。

 

新建状态( NEW ) 创建线程对象

就绪状态( RUNNABLE ) start方法

阻塞状态( BLOCKED ) 无法获得锁对象

等待状态( WAITING ) wait方法

计时等待( TIMED_WAITING ) sleep方法

结束状态( TERMINATED ) 全部代码运行完毕

 

posted @   __破  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示