Timer.cancel():取消任务。
Timer.purge():从此计时器的任务队列中删除所有已取消的任务。
如果我不在这里使用 purge() 会发生什么?当计时器的任务队列已满时会发生什么?
最佳答案
除非您运行的计时器数量过多,否则实际计时器行为不会发生任何变化。 cancel方法确实停止了定时器的运行,但是即使在定时器被取消之后,程序仍然会保留对定时器的引用,因此它所使用的内存仍然会被使用。 purge 方法允许 Java 标记垃圾回收的计时器引用,从而允许它们正在使用的内存用于其他用途。
大多数程序不需要使用清除方法,它只适用于将使用大量计时器的程序,要么是在短时间内使用很多计时器,要么是程序一次要运行很多天。
关于java - 为什么需要使用java.util.TimerTask的purge()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38569051/