1,NEW 表示当前Thread对象虽然有了,但是内核的线程还没用调用(还未调用过start)
public class demo11 {public static void main(String[] args) {Thread thread = new Thread(()->{});System.out.println(thread.getState());thread.start();}
}
此时就位NEW状态。
2,TERMINATED 当前Thread对象虽然还在但是内核的线程已经摧毁了(线程已经结束)
public class demo11 {public static void main(String[] args) throws InterruptedException {Thread thread = new Thread(()->{});thread.start();Thread.sleep(3000);System.out.println(thread.getState());}
}
3,RUNNING 就绪状态,正在CPU上运行或随时可以去CPU上运行
public class demo11 {public static void main(String[] args) {Thread thread = new Thread(()->{});thread.start();System.out.println(thread.getState());}
}
下列三种均为阻塞状态,但是不方便展示代码。
4,BLOCKED 因为锁竞争引起阻塞
5,TIMED_WAITING 有超时的时间等待(比如sleep或者join的带参版本)
6,WAITING 没有超时时间的阻塞状态(join/wait)