目标:掌握线程的状态转换
源文件:ThreadState.java
/*
* java之线程状态
* author guojing
* e-mail guo443193911@126.com
*
*/
package cn.com.ThreadState;
public class ThreadState extends Thread{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TestThreadState tts = new TestThreadState();
Thread tt = new Thread(tts);
tt.start();
}
}
class TestThreadState implements Runnable{
public void run(){
for(int i = 0;i < 30;i++){
if(i % 10 == 0&& i!= 0){
try {
System.out.println("线程休眠之前,线程是否活动 "+Thread.currentThread().isAlive());
Thread.sleep(2000);
System.out.println("线程休眠之后,线程是否活动 "+Thread.currentThread().isAlive());
} catch (Exception e) {
// TODO: handle exception
System.out.println("error"+i);
e.printStackTrace();
}
}
System.out.println("No."+i);
}
}
}
执打印的结果如下:
No.0
No.1
No.2
No.3
No.4
No.5
No.6
No.7
No.8
No.9
线程休眠之前,线程是否活动 true
线程休眠之后,线程是否活动 true
No.10
No.11
No.12
No.13
No.14
No.15
No.16
No.17
No.18
No.19
线程休眠之前,线程是否活动 true
线程休眠之后,线程是否活动 true
No.20
No.21
No.22
No.23
No.24
No.25
No.26
No.27
No.28
No.29
执行这个程序,将会向控制台输出在0-29这几个数字,而在可以被10整除并且不等于0的几个地方,如10,20,线程将会“睡眠”2秒钟。
用isAlive()方法来判断当前线程是否处于“活动状态”。
阅读(605) | 评论(0) | 转发(0) |