Java基础语法-线程的五大状态
线程从创建、运行、到死亡总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。
1.创建状态
Thread t = new Thread();
线程对象一旦创建就进入到了创建状态。
2.就绪状态
当调用start()方法,线程立即进入就绪状态,但不意味着立即调度执行。线程还必须同其他线程竞争CPU时间,只有获得CPU时间才可以运行线程。
3.运行状态
进入运行状态,线程才会真正执行线程体的代码块。
4.阻塞状态
当调用sleep、wait或同步锁定时,线程进入阻塞状态,就是代码不往下执行,阻塞事件解除后,重新进入就绪状态,等待cpu调度执行。
5.死亡状态
线程中断或者结束,一旦进入死亡状态,就不能再次启动。
有两个原因会导致线程死亡:
①run方法正常退出而自然死亡;
②一个未捕获的异常终止了run方法而使线程猝死;
为了确定线程在当前是否存活着(就是要么是可运行的,要么是被阻塞了),需要使用isAlive方法,如果是可运行或被阻塞,这个方法返回true;如果线程仍旧是new状态且不是可运行的,或者线程死亡了,则返回false。