Thread-线程状态

线程状态
Thread.State
| NEW | 至今尚未启动的线程处于这种状态。 |
|---|---|
| RUNNABLE | 正在Java虚拟机中执行的线程处于这种状态。 |
| BLOCKED | 受阻塞并等待某个监视器锁的线程处于这种状态。 |
| WAITING | 无限期地等待另一个线程来执行某一特 定操作的线程处于这种状态。 |
| TIMED WAITING | 等待另一个线程来执行取决于指定等待时间的操作的线程处于这种状态。 |
| TERMINATED | 已退出的线程处于这种状态。 |
import java.lang.Thread.State;
public class ThreadState {
public static void main(String[] args) {
Thread t = new Thread(()->{
for(int i=0;i<20;i++) {
try {
Thread.sleep(10);
}catch(InterruptedException e) {
e.printStackTrace();
}
Thread h = new Thread(new MyThread());
if(i==15) {
h.start();
try {
h.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("Running---->"+i);
}
});
State s = t.getState(); //NEW
System.out.println(s);
t.start();
s = t.getState(); //RUNNABLE
System.out.println(s);
while(true) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
s = t.getState();//出现WAITING和WIMED_WAITING
if(State.TERMINATED==s)break;
System.out.println(s);
}
s = t.getState();//线程退出 TERMINATED
System.out.println(s);
}
}
class MyThread extends Thread{
public void run() {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("the child thread is Running....");
}
}

浙公网安备 33010602011771号