What will happen if you call interrupt() on a slee

2019-08-03 18:20发布

问题:

I have a thread, and on run() I call sleep(). What will happen if I interrupt this thread?

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

I want to clarify the following:

  • If the thread is not yet started, calling interrupt() would do nothing, right?
  • If the thread is started, and is now sleeping, calling interrupt() while sleeping will throw an InterruptedException; and thus, goes to catch() and then ends the thread, right?

回答1:

1) Thread.interrupt API: Interrupting a thread that is not alive need not have any effect.

2) In your example the interrupted thread will enter catch block then leave run method and terminate