按照我写的程序,在执行显示当前时间10秒之后线程就应该终止了啊,但为什么我的这个会一直显示下去呢?
import java.util.*;
public class ThreadSleepDemoAgain extends Thread{
   public static void main(String[] args) {
ThreadSleepDemoAgain ts=new ThreadSleepDemoAgain(); 
ts.start();
try {
Thread.sleep(10000);
  //System.out.println("###############");
} catch (InterruptedException e) {
ts.interrupt();
}
}
@Override
public void run(){
//super.run();
while(true)
try {
System.out.println(new Date());
Thread.sleep(1000);
} catch (InterruptedException e) {
return;  
}
}
  }

解决方案 »

  1.   

    try { 
    Thread.sleep(10000); 
      //System.out.println("###############"); 
    } catch (InterruptedException e) { 
    ts.interrupt(); 
    } ts.interrupt(); 能执行到吗?
    ts.interrupt();放在catch外面
      

  2.   

    try { 
    Thread.sleep(10000); 
      //System.out.println("###############"); 
    } catch (InterruptedException e) { 
    ts.interrupt(); 
    } ts.interrupt(); 能执行到吗?
    ts.interrupt();放在catch外面
      

  3.   

    非常感谢chiphuo ,自己太粗心了
    这次一定好好接受教训