2

我有一个线程,run()我打电话给sleep(). 如果我中断这个线程会发生什么?

MyThread extends Thread{
    public void run(){
          try{
             sleep(1000000);
          } catch(InterruptedException e) {//}
    }    
}

我想澄清以下几点:

  • 如果线程还没有启动,那么调用interrupt()什么都不会做,对吧?
  • 如果线程已启动,并且现在正在休眠,interrupt()则在休眠时调用将抛出InterruptedException; 因此,转到catch()然后结束线程,对吗?
4

1 回答 1

3

1) Thread.interrupt API:中断一个不活动的线程不需要有任何效果。

2)在您的示例中,被中断的线程将进入 catch 块然后离开 run 方法并终止

于 2013-03-05T14:13:41.427 回答