【发布时间】:2013-09-09 15:30:14
【问题描述】:
我们在旧版 Java 集群应用程序中使用 Hazelcast 2.6.2。当应用程序停止时,JVM 不再终止。似乎是由于 Hazelcast 线程没有被标记为守护进程。我没有找到通过 Hazelcast API 标记它们的方法。
有没有推荐的解决方案来防止 Hazelcast 阻止 JVM 终止?
问候
【问题讨论】:
-
“应用程序停止时”:如何?您是简单地结束所有非守护线程还是实际使用
System.exit()?后者应该始终工作,无论是否有任何守护线程正在运行。 -
你在打电话给
hazelcast.shutdownAll();吗? -
@JoachimSauer:所有非守护线程都简单地结束,否则一个简单的 System.exit() 就足以像你说的那样终止 JVM
-
@Gray: 不幸的是我不知道应用程序何时结束,没有回调让我执行 hazelcast.shutdownAll() 甚至 System.exit()
-
我添加了一个答案,说明如何使用关闭挂钩。
标签: java multithreading jvm hazelcast