gpt4 book ai didi

Java Swing 应用程序在收到 TERM 信号后不会退出

转载 作者:可可西里 更新时间:2023-11-01 10:30:12 24 4
gpt4 key购买 nike

我有一个用作集群应用程序的 Java Swing 应用程序。问题是每次集群尝试终止 Java 应用程序时,它都会挂起,Windows 会显示“立即结束”对话框。所述应用程序是一种服务器类型,因此它会在每次尝试连接到它时生成一个线程。

我了解到集群使用 this 中提供的程序发送 TERM 信号文章。但是当控制台应用程序用作集群应用程序时,集群可以在几个 TERM 信号后终止进程。

我还尝试了使用 NetBeans 6.8 创建新项目时可用的 vanilla 示例桌面应用程序。即使在收到信号后它也不会终止。

从上面的演示来看,我觉得跟Swing有关系,或者跟线程有关系。谁能帮我这个?谢谢。

编辑:虽然我认为它会发送另一个信号,但它可以通过使用任务管理器来终止。

最佳答案

当您的 Java 应用程序接收到 TERM 信号时,它将在终止之前运行任何已注册的关闭 Hook 。一种可能是这些关闭 Hook 之一无限期阻塞,或者运行时间过长(>30 秒),导致显示 Windows“立即结束”对话框。

您可以尝试的一件事是注册一个关闭 Hook ,它只打印到控制台并验证它确实被调用。但是,不幸的是,由于 Hook 以任意顺序运行,因此无法确定此时是否已运行其他关闭 Hook 。

关于Java Swing 应用程序在收到 TERM 信号后不会退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2544821/

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