Java 什么时候应该进行应用程序清理

Java 什么时候应该进行应用程序清理,java,garbage-collection,resource-cleanup,Java,Garbage Collection,Resource Cleanup,我刚刚读到,我们可以使用shutdownhook作为一个例子,在这个例子中,在应用程序退出之前,最好提供函数来清理 我想知道的是,例如,如果您有一个像web服务一样全天候运行的应用程序,什么时候是终止和清理诸如Executor服务之类的事情的理想时间。如果应用程序不应该关闭,那么我们真的没有一个方便的清理周期或者确实没有能力干净地关闭吗 谢谢这个问题太宽泛了,但如果我理解正确,那么请解释一下: 程序中不再引用且没有剩余资源的池 线程将自动关闭。如果你想确保 即使用户忘记调用,也会回收未引用的池

我刚刚读到,我们可以使用shutdownhook作为一个例子,在这个例子中,在应用程序退出之前,最好提供函数来清理

我想知道的是,例如,如果您有一个像web服务一样全天候运行的应用程序,什么时候是终止和清理诸如Executor服务之类的事情的理想时间。如果应用程序不应该关闭,那么我们真的没有一个方便的清理周期或者确实没有能力干净地关闭吗


谢谢

这个问题太宽泛了,但如果我理解正确,那么请解释一下:

程序中不再引用且没有剩余资源的池 线程将自动关闭。如果你想确保 即使用户忘记调用,也会回收未引用的池 shutdown(),则必须安排未使用的线程最终消亡, 通过设置适当的保持活动时间,使用0的下限 核心线程和/或设置allowCoreThreadTimeOut(布尔值)

例如,Executors.newSingleThreadExecutor()
创建的ExecutorService是
FinalizableDelegatedExecutorService
的一个实例。现在,
ExecutorService
类具有对包装的ExecutorService对象调用
shutdown()
方法的
finalize()
方法