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)