Java基础语法-线程的五大状态

线程从创建、运行、到死亡总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。

Java基础语法-线程的五大状态

1.创建状态

Thread t = new Thread(); 

线程对象一旦创建就进入到了创建状态。

2.就绪状态

当调用start()方法,线程立即进入就绪状态,但不意味着立即调度执行。线程还必须同其他线程竞争CPU时间,只有获得CPU时间才可以运行线程。

3.运行状态

进入运行状态,线程才会真正执行线程体的代码块。

4.阻塞状态

当调用sleep、wait或同步锁定时,线程进入阻塞状态,就是代码不往下执行,阻塞事件解除后,重新进入就绪状态,等待cpu调度执行。

5.死亡状态

线程中断或者结束,一旦进入死亡状态,就不能再次启动。

有两个原因会导致线程死亡:

①run方法正常退出而自然死亡;

②一个未捕获的异常终止了run方法而使线程猝死;

为了确定线程在当前是否存活着(就是要么是可运行的,要么是被阻塞了),需要使用isAlive方法,如果是可运行或被阻塞,这个方法返回true;如果线程仍旧是new状态且不是可运行的,或者线程死亡了,则返回false。