问题
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 anInterruptedException; and thus, goes tocatch()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
来源:https://stackoverflow.com/questions/15225579/what-will-happen-if-you-call-interrupt-on-a-sleeping-thread