关闭钩子可以依赖另一个线程吗?
-
05-07-2019 - |
题
在一个关闭钩子方法中,我需要它向另一个进程发送一条消息,说它已经关闭。我当前的消息处理代码要求将消息写入队列,此队列由另一个线程处理并发送到任何地方。在这种情况下,由另一个线程写入管道文件。
在关闭钩子中,我可以保证这些线程仍然会运行吗?我有几个关闭钩子,但这些都是处理其他不需要其他线程的东西。
执行很少。它将运行大约15行代码+写入文件所需的任何等待,这也应该是最小的。
解决方案
来自 addShutdownHook :
"请注意,守护程序线程将在关闭序列期间继续运行,如果通过调用退出方法启动关闭,则非守护程序线程将继续运行。“
鉴于此,我会说可以安全地假设您的线程仍在运行,并且您可以与之通信。我唯一要警告的是依靠你的关闭钩子以确定的顺序运行。
其他提示
听起来你需要一个多步骤的关机过程。在多线程环境中,我不会指望简单地评估您需要执行的代码行,以便为您提供关闭程序的指导......
不隶属于 StackOverflow