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