我想在调用我的 main 方法时关闭所有正在运行的线程(如果有)。
public static void main(String[] args) throws Exception {
// Close all thread except current one
...
// Remaining of my program
}
最佳答案
首先,您是否知道 JVM 中有一些自动启动的线程,您不应该乱动它们?其中包括 Finalizer 线程、各种 JMX 线程、Swing 的 EDT、Reference Handler 等。
其次,您是否意识到您不能安全地停止 Java 中的线程?你只能轻轻地让它停下来。
如果您了解上述情况,请尝试迭代 JVM 中的所有线程(请参阅: Get a List of all Threads currently running in Java )并对每个线程调用 interrupt()
(不包括你的主
线程。请不要使用 stop()
,因为这可能会导致非常严重的问题,例如死锁。
关于java - 关闭除主线程之外的所有线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9495272/