问题
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