我有一个程序需要以大致固定的时间间隔运行,永远运行。我找到了 ScheduledExecutorService 并注意到它的 ScheduleAtFixedRate() 方法。 There's a simple tutorial here.
我的问题是,如果我的程序继续按预期运行(大约每 60 秒直到时间结束),如果我使用上述方法,是否需要做任何事情来处理垃圾回收?我需要关闭线程等吗?我应该运行 System.gc 吗?我还在习惯 Runnables。
目前我正在使用 while 循环和 thread.sleep(60000) 每 60 秒执行一次任务。但这种方式没有垃圾收集,运行几天后我的程序最终使用了超过 70% 的服务器内存。
感谢您提供的任何帮助。感谢您花时间帮助我解决新手问题。这基本上是我 Java 之旅的第二年!
最佳答案
无需采取任何行动。 GC会在需要时自动运行。
关于java - 在永无休止的任务上使用 ScheduledExecutorService 时如何执行垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35709141/