一、线程的五个状态:新生-(阻塞)-就绪-运行-死亡
二、就绪状态的四种情况:
1)start()
2)阻塞解除-->join
3)yield-->让出CPU的调度
4)jvm从本地线程切换其他线程
三、阻塞状态
1)sleep
2)join
3) wait
4) write/read
package com.sxt.io2;
public class AllState {
public static void main(String[] args) throws InterruptedException {
Thread t=new Thread(()->{
for(int i=0;i<5;i++){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(">>>>>>>>");
}
});
System.out.println(t.getState());//NEW
t.start();
System.out.println(t.getState());//RUNNABLE
while(true){
int num=Thread.activeCount();//当前活动的线程数
System.out.println(num);
if(num==2) break;
Thread.sleep(200);
System.out.println(t.getState());//TIMED_WAITING
}
}
}
运行结果
NEW
RUNNABLE
3
>>>>>>>>
>>>>>>>>
RUNNABLE
3
>>>>>>>>
TIMED_WAITING
3
>>>>>>>>
>>>>>>>>
TERMINATED
2