Java,弄清楚System是否已经开始关闭。

时间:2015-02-08 11:32:17

标签: java

如果系统已经开始关闭,是否有可能在任何时候弄清楚,例如在catch块中或代码中的任何位置?

通常会触发 shutdownhooks ,但是Java运行时无法保证它们何时运行,所以我无法注册一个设置标志以便在别处读取。

是否可以调用某种方法来确定系统是否已进入该状态?对于instnace,如果有人调用System.exit(x)或Runtime.getRuntime()。exit(status);

1 个答案:

答案 0 :(得分:1)

  

通常会触发shutdownhooks,

是的......

  

...但Java运行时无法保证何时运行,

它无法保证将运行它们的订单,或者它们将完成。但它确实保证 1 启动它们。

  

...所以我无法注册一个设置标志以便在别处阅读。

一个能够提供关闭"的课程是微不足道的。旗。然后只需安排所有关闭挂钩来设置标志。如果他们都设置了它,那么首先启动哪个关闭挂钩并不重要。


1 - 此保证不是无条件的。在某些情况下,关闭钩子根本不会运行。例如,如果电源关闭,或者JVM是" kill -9" d。功能