目录
观察线程的所有状态
1. new状态
2. TERMINATED 状态
3. RUNNABLE 就绪状态,运行状态
4. TIMED_WAITNG 休眠状态
5. BLOCKED 表示等待锁出现的状态
6. WAITING 使用wait方法出现的状态
观察线程的所有状态
线程的状态是一个枚举类型
public class test2 {
public static void main(String[] args) {
for (Thread.State state : Thread.State.values()) {
System.out.println(state);
}
}
}
* 1.NEW 系统的线程还没创建,只是有一个线程的对象
* 2.TERMINATED(terminated) 线程已经结束但是线程对象还在.
* 3.RUNNABLE(runnable) 就绪状态:1.正在CPU上进行运行2.准备好随时可以去CPU上去运行.
* 4.TIME_WAITING(time_waiting) 程序正在休眠状态
* 5.BLOCKED(blocked) 表示等待锁出现的状态
* 6. WAITING(waiting) 使用wait方法出现的状态
1. new状态
package threading;
public class ThreadDemo9 {
public static void main(String[] args) {
Thread t=new Thread(()->{
System.out.println("hello t");
});
System.out.println(t.getState());
t.start();
}
}
2. TERMINATED 状态
package threading;
public class ThreadDemo9 {
public static void main(String[] args)throws InterruptedException {
Thread t=new Thread(()->{
System.out.println("hello t");
});
System.out.println(t.getState());
t.start();
Thread.sleep(2000);
System.out.println(t.getState());
}
}
系统中的线程已经执行完了,Thread对象还在.
3. RUNNABLE 就绪状态,运行状态
细分为两种状态.
1.正在CPU上进行运行 (Running)
2.住备好随时可以去CPU上进行运行 (Ready)
package threading;
public class ThreadDemo9 {
public static void main(String[] args)throws InterruptedException {
Thread t=new Thread(()->{
while (true){
// System.out.println("hello t");
}
});
t.start();
Thread.sleep(2000);
System.out.println(t.getState());
}
}
4. TIMED_WAITNG 休眠状态
指定时间等待.sleep方法。
package threading;
public class ThreadDemo9 {
public static void main(String[] args)throws InterruptedException {
Thread t=new Thread(()->{
while (true){
try {
Thread.sleep(1000);
}catch (InterruptedException e){
e.printStackTrace();
}
}
});
t.start();
Thread.sleep(2000);
System.out.println(t.getState());
}
}
5. BLOCKED 表示等待锁出现的状态
6. WAITING 使用wait方法出现的状态
一条主线,三个支线。理解线程状态,意义就是让我们能够更好地进行多线程代码的调试。