java中System.gc和ShutdownHook的替代方法

时间:2017-09-01 07:03:45

标签: multithreading jvm

我们正在使用System.gc方法来暂停JVM以删除临时目录,因为之前它没有被删除,但我知道使用System.gc或Runtime.getRuntime()是一种不好的做法,所以我是Im想要使用除此之外的其他方法,请建议使用哪种方法。

1 个答案:

答案 0 :(得分:0)

手动管理资源,而不是依赖终结器。即删除创建它的方法末尾的临时目录,或者如果您正在使用异步控制流,则将CompletableFuture添加到执行删除的末尾。 使用try-with-resources语句确保文件仅在有限的范围内保持打开状态。

在posix系统上,您可以简单地删除(取消链接)文件和(rmdir)目录,即使它们仍被某些文件描述符引用。