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 に答える