线程的生命周期
JDK中用了Thread.State枚举表示 了线程的几种状态
public static enum Thread.State
extends Enum<Thread.State>
线程状态。线程可以牌以下状态之一
NEW:尚未启动的线程处于此状态。
RUNNABLE:在Java虚拟机中执行的线程处于此状态
其实RUNNABLE前面还有一个Readly,准备就续的状态,进不进入到RUNNABLE看内核调度器是否执行,如果执行则进入到RUNNABLE
BLOCKED:被阻塞等待监视器锁定的线程处于此状态
WAITING:正在等待另一个线程执行特定动作的线程处于此状态
TIMED_WAITING:正在等待另一个线程执行动作达到指定等待时间的线程处于此状态。
TERMINATED:已退出的线程处于此状态
/**
* @ClassName ThreadState_
* @Description
* @Author 小黄debug
* @Date 2022/3/20 20:30
* @Version 1.0
**/
public class ThreadState_ {
public static void main(String[] args) throws InterruptedException {
T t1 = new T();
System.out.println(t1.getName()+"状态"+t1.getState());
t1.start();
while(Thread.State.TERMINATED != t1.getState()){
Thread.sleep(1000);
System.out.println(t1.getName()+"状态"+t1.getState());
}
System.out.println(t1.getName()+"状态"+t1.getState());
}
}
class T extends Thread {
@Override
public void run() {
while (true) {
for (int i = 0; i < 10; i++) {
System.out.println("hi"+i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
break;
}
}
}
//运行结果
/*
Thread-0状态NEW
hi0
Thread-0状态TIMED_WAITING
hi1
Thread-0状态RUNNABLE
hi2
Thread-0状态RUNNABLE
hi3
Thread-0状态TIMED_WAITING
hi4
hi5
Thread-0状态TIMED_WAITING
Thread-0状态TIMED_WAITING
hi6
Thread-0状态RUNNABLE
hi7
hi8
Thread-0状态RUNNABLE
Thread-0状态TIMED_WAITING
hi9
Thread-0状态TIMED_WAITING
Thread-0状态TERMINATED
*/