线程的生命周期

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

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

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 @ 2022-11-30 12:53  __破  阅读(28)  评论(0)    收藏  举报