在一个关闭钩子方法中,我需要它向另一个进程发送一条消息,说它已经关闭。我当前的消息处理代码要求将消息写入队列,此队列由另一个线程处理并发送到任何地方。在这种情况下,由另一个线程写入管道文件。

在关闭钩子中,我可以保证这些线程仍然会运行吗?我有几个关闭钩子,但这些都是处理其他不需要其他线程的东西。

执行很少。它将运行大约15行代码+写入文件所需的任何等待,这也应该是最小的。

有帮助吗?

解决方案

来自 addShutdownHook

"请注意,守护程序线程将在关闭序列期间继续运行,如果通过调用退出方法启动关闭,则非守护程序线程将继续运行。“

鉴于此,我会说可以安全地假设您的线程仍在运行,并且您可以与之通信。我唯一要警告的是依靠你的关闭钩子以确定的顺序运行。

其他提示

听起来你需要一个多步骤的关机过程。在多线程环境中,我不会指望简单地评估您需要执行的代码行,以便为您提供关闭程序的指导......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top