在Java多线程应用程序中,我们处理InterruptedThreadException。如果另一个线程中断当前线程,则抛出此异常。现在,当另一个线程知道它会导致异常时,它可能想要中断当前线程的原因是什么?
答案 0 :(得分:3)
很多原因。但最受欢迎的是在线程上取消某些任务。
有关详细信息,请参阅http://www.ibm.com/developerworks/java/library/j-jtp05236/index.html。
答案 1 :(得分:2)
在大多数情况下,要通知Thread
应该中止。通常,执行某种批处理操作的工作线程以在中断时终止自身(即退出其run()
方法)的方式实现。
不幸的是,许多程序员只是抓住并吞下它,这是一种非常糟糕的做法。如果Thread
不期望InterruptedException
,它应该重新抛出,或者如果它不能抛出它应该恢复其中断状态(如果受到接口限制< / em>例如)通过调用
catch (InterruptedException e) {
Thread.currentThread().interrupt();
}