在Java多线程应用程序中,我们处理InterruptedThreadException异常。如果另一个线程中断当前线程,将抛出此异常。现在当另一个线程知道它将引起异常时,为什么可能想要中断当前线程?
在Java多线程应用程序中,我们处理InterruptedThreadException异常。如果另一个线程中断当前线程,将抛出此异常。现在当另一个线程知道它将引起异常时,为什么可能想要中断当前线程?
在大多数情况下,为了通知一个Thread
应该中止。通常,执行某种批量操作的工作线程会被实现为在中断时终止自身(即从其run()
方法中退出)。
不幸的是,很多程序员只是捕获并吞掉中断信号,这是非常非常糟糕的做法。如果一个Thread
没有期望到InterruptedException
,它应该重新抛出或者通过调用restore恢复其中断状态,如果它不能throw它(例如受限于某个Interface)。
catch (InterruptedException e) {
Thread.currentThread().interrupt();
}