java - 关闭钩子(Hook)可以依赖另一个线程吗?

标签 java multithreading application-shutdown

在关闭 Hook 方法中,我需要它向另一个进程发送消息以表明它已关闭。我当前的消息处理代码要求将消息写入队列,该队列由另一个线程处理并发送到它要去的任何地方。在本例中,由另一个线程写入管道文件。

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

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

最佳答案

来自 addShutdownHook 的 Javadoc 描述:

“请注意,守护线程将在关闭序列期间继续运行,如果通过调用 exit 方法启动关闭,则非守护线程也会继续运行。” p> 鉴于此,我想说可以安全地假设您的线程仍将运行并且您能够与其通信。我唯一要警告的是不要依赖以确定性顺序运行的关闭 Hook 。

关于java - 关闭钩子(Hook)可以依赖另一个线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1607555/

相关文章:

c++ - 带有定义参数的 Pthread

c++ - 在多个自动重置事件上使用 WaitForMultipleObjects

android - setOnClickListener - 应用程序意外停止

ios - 当应用程序切换到 facebook 进行登录和权限请求时,防止 IOS 关闭应用程序

java - 如何使用带有 Hibernate-OMR PanacheRepository 的 Quarkus 模拟 PanacheQuery<Entity>

java - 将变量名称作为输入并输出其值 - Java

java - 找出读入数据的正确方法

java - 将 Android 应用程序连接到基于 PC 的数据库

java - 使用 ThreadPoolExecutor 进行线程同步

node.js - Express.js 应用程序未使用 server.close() 完全关闭