3

在 Java 多线程应用程序中,我们处理 InterruptedThreadException。如果另一个线程中断当前线程,则抛出此异常。现在,当另一个线程知道它将导致异常时,它可能想要中断当前线程的原因是什么?

4

2 回答 2

4

很多原因。但最流行的是取消线程上的某些任务。

有关详细信息,请参阅http://www.ibm.com/developerworks/java/library/j-jtp05236/index.html

于 2013-07-05T18:42:50.280 回答
3

在大多数情况下,通知 aThread应该中止。通常,执行某种批处理操作的工作线程的实现方式是run()在中断时自行终止(即退出其方法)。

不幸的是,许多程序员只是简单地抓住并吞下它,这是一种非常非常糟糕的做法。如果 aThread不期望InterruptedException它应该重新抛出,或者如果它不能抛出它(例如,如果受接口限制),则应该通过调用恢复其中断状态

catch (InterruptedException e) {
    Thread.currentThread().interrupt();
}
于 2013-07-05T18:27:15.127 回答