class ThreadA
extends Thread{
int count = 0;
public void run(){
System.out.println(getName() + " 将要运行...");
while (! this.isInterrupted()){
System.out.println(getName() + " 运行中 " + count++);
try{
Thread.sleep(400); // 休眠400毫秒
} catch(InterruptedException e){ // 退出阻塞态时将捕获异常
System.out.println(getName()+ "从阻塞态中退出...");
this.interrupt(); // 改变线程状态,使循环结束
}
}
System.out.println(getName() + " 已经终止!");
}
}
class ThreadDemo134{
public static void main(String argv[]) throws InterruptedException{
ThreadA ta = new ThreadA();
ta.setName( "ThreadA");
ta.start();
Thread.sleep(2000); // 主线程休眠2000毫秒,等待其他线程执行
System.out.println(ta.getName()+ " 正在被中断....."); //2000毫秒过去后,main拿到cpu控制权。
ta.interrupt(); // 中断线程ThreadA
}
}
int count = 0;
public void run(){
System.out.println(getName() + " 将要运行...");
while (! this.isInterrupted()){
System.out.println(getName() + " 运行中 " + count++);
try{
Thread.sleep(400); // 休眠400毫秒
} catch(InterruptedException e){ // 退出阻塞态时将捕获异常
System.out.println(getName()+ "从阻塞态中退出...");
this.interrupt(); // 改变线程状态,使循环结束
}
}
System.out.println(getName() + " 已经终止!");
}
}
class ThreadDemo134{
public static void main(String argv[]) throws InterruptedException{
ThreadA ta = new ThreadA();
ta.setName( "ThreadA");
ta.start();
Thread.sleep(2000); // 主线程休眠2000毫秒,等待其他线程执行
System.out.println(ta.getName()+ " 正在被中断....."); //2000毫秒过去后,main拿到cpu控制权。
ta.interrupt(); // 中断线程ThreadA
}
}
运行结果:
ThreadA 将要运行...
ThreadA 运行中 0
ThreadA 运行中 1
ThreadA 运行中 2
ThreadA 运行中 3
ThreadA 运行中 4
ThreadA 正在被中断.....
ThreadA从阻塞态中退出...
ThreadA 已经终止!
转载于:https://blog.51cto.com/55757353/858317