我正在编写单线程程序,有时会调用阻塞方法(即process.waitFor
)。
我可以确定我的线程的中断状态是否从未设置过?还有其他条件,JVM或JRE标准库可能决定在我的线程上设置中断标志吗?
看起来确实如此,但我在Java文档中找不到任何关于它的提及。
答案 0 :(得分:3)
如果您的应用程序没有创建任何“Java”(java.lang.Thread)线程,那么我相信您可以放心地假设您的主线程永远不会被中断,请参阅此dW article by Brian Goetz。当然,你正在使用的某些库总是可以创建线程并且可能在你的主线程上调用interrupt(),但它不太可能。
最后,我认为您需要考虑您的要求。线程中断支持的主要目的是可以取消任务(线程),以便应用程序可以干净地关闭,即使某些线程在阻塞调用中被挂起。