在 Java 多线程应用程序中,我们处理 InterruptedThreadException。如果另一个线程中断当前线程,则抛出此异常。现在,当另一个线程知道它将导致异常时,它可能想要中断当前线程的原因是什么?
问问题
504 次
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 回答