从Thread.sleep抛出InterruptedException时?

时间:2012-11-03 16:08:55

标签: java

thread.sleep何时生成InterruptedException?我正在使用此但未发生异常。请帮助使用线程。关于将信息传递给线程并从线程返回信息。 public class myThread扩展Thread {

@Override
public void run(){

    try{

    while(true) {
        Thread.sleep(200);   
        System.out.println("Thread is running");

    }
   }
   catch(InterruptedException ex){
   System.out.println("Exception Occur");
   }
}

200ms后不会发生异常。为什么??

2 个答案:

答案 0 :(得分:4)

据我所知,当您尝试终止/中断正在休眠的线程时会生成InterruptedException。

答案 1 :(得分:4)

InterruptedException是为了响应Thread.interrupt在管理您调用Thread的线程的sleep实例上调用而引发的。您可以通过自己调用该方法轻松测试它,即使在您调用sleep的同一个线程中也是如此。只需在调用Thread.currentThread().interrupt()之前,看看会发生什么。