如果在睡眠线程上调用interrupt()会发生什么?

时间:2013-03-05 13:55:26

标签: java multithreading thread-sleep interrupted-exception

我有一个帖子,在run()我打电话给sleep()。如果我打断这个帖子会怎么样?

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

我想澄清以下内容:

  • 如果线程尚未启动,则调用interrupt()将无效,对吧?
  • 如果线程已启动且正在休眠,则在休眠时调用interrupt()会抛出InterruptedException;因此,转到catch()然后结束线程,对吧?

1 个答案:

答案 0 :(得分:2)

1)Thread.interrupt API:中断非活动的线程无需任何效果。

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