java - JVM可以在单线程程序上调用中断吗?

标签 java multithreading

我正在编写一个单线程程序,它有时会调用阻塞方法(即process.waitFor)。

我能否确定我的线程的中断状态永远不会被设置?是否存在其他条件下 JVM 或 JRE 标准库可能决定在我的线程上设置中断标志?

这似乎是真的,但我在 Java 文档中找不到任何关于它的提及。

最佳答案

如果您的应用程序没有创建任何“Java”(java.lang.Thread)线程,那么我相信您可以放心地假设您的主线程永远不会被中断,请参阅此dW article by Brian Goetz 。当然,您正在使用的某些库总是有可能创建线程并可能在主线程上调用interrupt(),但这不太可能。

最后,我认为你需要考虑你的需求。线程中中断支持的主要目的是可以取消任务(线程),以便应用程序可以干净地关闭,即使某些线程在阻塞调用中挂起。

关于java - JVM可以在单线程程序上调用中断吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919692/

相关文章:

java - 从 JList 中删除项目

java - 如何在 Java 中将一个 ListModel 转换为另一个 ListModel

python - 如何使用 OpenCV VideoWriter 根据触发器开始和停止保存视频帧

java - 执行两个线程,一个等待另一个,而主线程继续

java - Nodejs 在单线程环境中进行许多剩余调用

java - jtable中光标自动闪烁,无需点击鼠标

java - 无法将 JSONObjects 的 ArrayList 传递给新 Activity

java - 需要在 5 秒内使用 hibernate 在 mysql 中插入 100000 行

java - 是否有与 Java 的 FixedThreadPool 等效的 Python 库?

C++:用于上下并行前缀计算的线程池