package cn.usts.edu.lesson06;
/**
* 一个线程可以在给定时间点处于一个状态。 这些状态是不反映任何操作系统线程状态的虚拟机状态。
*
* 线程状态。 线程可以处于以下状态之一:
* NEW 尚未启动的线程处于此状态。
* RUNNABLE 在Java虚拟机中执行的线程处于此状态。
* BLOCKED 被阻塞等待监视器锁定的线程处于此状态。
* WAITING 正在等待另一个线程执行特定动作的线程处于此状态。
* TIMED_WAITING 正在等待另一个线程执行动作达到指定等待时间的线程处于此状态。
* TERMINATED 已退出的线程处于此状态。
*
*
* */
public class ThreadStateDemo implements Runnable {
@Override
public void run() {
}
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(
// lambda表达式实现的run方法.
()->{
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(1000);// 延时1s
} catch (InterruptedException e) {
.printStackTrace();
e}
}
System.out.println("------------------");
});
System.out.println(thread.getState()); // 获取启动前的状态
// 线程启动
.start();
threadSystem.out.println(thread.getState());// 获取启动时的状态
while (thread.getState()!=Thread.State.TERMINATED){
Thread.sleep(900); // 延时100ms刷新状态
System.out.println(thread.getState());
}
}
}