0

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

在关闭挂钩中,我可以保证这些线程仍将运行吗?我有几个关闭钩子,但这些都是为了处理不需要其他线程的其他事情。

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

4

2 回答 2

4

来自addShutdownHook的 Javadoc 描述:

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

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

于 2009-10-22T14:23:50.380 回答
0

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

于 2009-10-22T14:23:44.680 回答