在Java多线程应用程序中,我们处理InterruptedThreadException。如果另一个线程中断当前线程,则抛出此异常。现在当另一个线程知道它会导致异常时,可能想要中断当前线程的原因是什么?为什么一个线程会中断另一个线程
回答
在大多数情况下,要通知Thread
应该中止。通常,执行某种批处理操作的工作线程在被中断时以自身终止(即退出其run()
方法)的方式实现。
不幸的是,很多程序员只是简单地捕捉并吞下它,这是一个非常糟糕的做法。如果Thread
没有在期待一个InterruptedException
它应该要么重新抛出或应恢复其中断状态,如果它不能扔它通过调用
catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
@Downvoter,请解释反对票。 –
您的回答对我来说非常有意义。可能是因为他正在吃掉他所有的InterruptedExceptions而得罪的人'。 –
你们不知道Java你可以吃任何时候打断你的异常 – megazord
原因很多(如果限制由接口为例)。但最流行的是取消某个线程上的某个任务。
详情请参阅http://www.ibm.com/developerworks/java/library/j-jtp05236/index.html。
- 1. 一个线程可以中断另一个线程吗?
- 2. 为什么我的代码会中断一个线程泄漏?
- 3. 下一个下载线程中断前一个:为什么?
- 4. python为什么在一个线程中真正阻塞另一个线程
- 5. 为什么启动一个线程被另一个线程阻塞?
- 6. 为什么线程在另一个线程开始执行时会停止?
- 7. 中断一个线程
- 8. 为什么task1线程不会中断
- 9. 中断内的另一个线程的run方法,一个线程在Java中
- 10. 如何从监视器中断另一个线程线程
- 11. 多线程:启动一个线程,而另一个进程不断去
- 12. 在另一个线程的断点处保持线程运行
- 13. 从另一个线程操作线程
- 14. 从另一个线程运行线程
- 15. 一个线程如何在另一个线程中被杀死
- 16. 想要中断一个线程,但线程为空
- 17. 线程中断()不会中断线程
- 18. 在Java中,如果一个线程死亡,另一个线程会发生什么?
- 19. 一个线程在iPhone应用程序中杀死另一个线程(两个线程都是主线程)?
- 20. Python:在一个线程中停止另一个线程从另一个线程结束
- 21. 的NSTimer不会在另一个线程
- 22. 为什么主线程在继续之前等待另一个线程完成?
- 23. 块中的一个线程和一个warp(32个线程)有什么区别?
- 24. 主线程不会等待另一个线程完成执行
- 25. Python,是否适合一个线程产生另一个线程
- 26. 如何让一个线程等待另一个线程?
- 27. shared_from_this()从另一个线程(一个成员线程函数)
- 28. 使用另一个线程终止一个线程(循环)
- 29. 有一个线程启动另一个线程,然后死
- 30. Android另一个线程
这已经在这里得到解答:http://stackoverflow.com/questions/225194/what-kind-of-behaviour-causes-an-interrupted-exception –