2013-07-05 76 views
2

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

+2

这已经在这里得到解答:http://stackoverflow.com/questions/225194/what-kind-of-behaviour-causes-an-interrupted-exception –

回答

2

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

不幸的是,很多程序员只是简单地捕捉并吞下它,这是一个非常糟糕的做法。如果Thread没有在期待一个InterruptedException它应该要么重新抛出或应恢复其中断状态,如果它不能它通过调用

catch (InterruptedException e) { 
    Thread.currentThread().interrupt(); 
} 
+1

@Downvoter,请解释反对票。 –

+3

您的回答对我来说非常有意义。可能是因为他正在吃掉他所有的InterruptedExceptions而得罪的人'。 –

+1

你们不知道Java你可以吃任何时候打断你的异常 – megazord

相关问题