题外话
今天连更两篇
正题
线程的六种状态及含义
1.NEW
安排了工作,还未开始行动
只是创建了Tread对象和要完成的代码,但并没有启动线程
2.RUNNABLE
可工作的.又可以分成正在工作中和即将开始工作
正在执行线程中
3.BLOCKED:这几个都表示排队等着其他事情
4.WAITING:这几个都表示排队等着其他事情
5.TIMED WAITING:这几个都表示排队等着其他事情
BLOCKED,WAITING,TIMED WAITING代表正处于执行中,但没有进行工作
6.TERMINATED:工作完成了
线程执行结束
状态转换
public static void main(String() args)
{
final Object object = new Object();
Thread tl = new Thread(new Runnable(){
@Override
public void run(){
synchronized(object){
try {
Thread.sleep(1000);object.wait();
}
catch(InterruptedException e){
e.printStackTrace();
}
}
}
},"七1");
}
使⽤jconsole可以看到t1的状态是WAITING
使用 jconsole 可以看到 t1 的状态是 WAITING
结论:
BLOCKED 表示等待获取锁,WAITING和 TIMED WAITING 表示等待其他线程发来通知.TIMED WAITING 线程在等待唤醒,但设置了时限: WAITING 线程在无限等待唤醒
小结
本篇内容到此结束