gpt4 book ai didi

java - JVM 在 swing 应用程序退出后没有关闭

转载 作者:搜寻专家 更新时间:2023-11-01 01:57:40 24 4
gpt4 key购买 nike

我有一个带有退出按钮的 swing 应用程序,该按钮调用调用 System.exit(0) 的方法;但由于某种原因 JVM 没有关闭。有谁知道什么会导致 JVM 继续运行?

最佳答案

当您调用 System.exit() 时,非守护线程不会阻止程序终止(守护线程肯定不会),但关闭 Hook 会,如果它们未能终止。

† 参见 Design of the Shutdown Hooks API (最初链接的文章现在仅在 the wayback machine 可用)。

Swing 可能使用关闭 Hook ,但不会以阻止程序终止的方式使用。但是,如果您(或您使用的某些库)调用 Runtime.addShutdownHook() ,你最好确保你的关闭 Hook 不会死锁。

顺便说一下,这个问题的一个变通方法是添加一个关闭 Hook ,该 Hook 会关闭另一个等待 60 秒的线程,然后调用 Runtime.halt()。 . (您必须关闭另一个线程,否则关闭 Hook 会通过等待 60 秒阻止程序终止 60 秒。)

关于java - JVM 在 swing 应用程序退出后没有关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4664678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com