java - 为什么需要使用java.util.TimerTask的purge()?

标签 java

Timer.cancel():取消任务。

Timer.purge():从此计时器的任务队列中删除所有已取消的任务。

如果我不在这里使用 purge() 会发生什么?当计时器的任务队列已满时会发生什么?

最佳答案

除非您运行的计时器数量过多,否则实际计时器行为不会发生任何变化。 cancel方法确实停止了定时器的运行,但是即使在定时器被取消之后,程序仍然会保留对定时器的引用,因此它所使用的内存仍然会被使用。 purge 方法允许 Java 标记垃圾回收的计时器引用,从而允许它们正在使用的内存用于其他用途。

大多数程序不需要使用清除方法,它只适用于将使用大量计时器的程序,要么是在短时间内使用很多计时器,要么是程序一次要运行很多天。

关于java - 为什么需要使用java.util.TimerTask的purge()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38569051/

相关文章:

javascript - 当项目从java1.4迁移到java1.8时,jsp中TextBox的默认值为 "null"

java - c中枚举的int值是多少?

java - 使用 jackson 转换 Java 对象时如何忽略可选属性

java - 绘制选择排序的视觉效果

java - Fasterxml Jackson 自动将非 boolean 值转换为 boolean 值

java - 如何制作一个接受尾随垃圾的 DateTimeFormatter?

java - 如何创建 Windows 可执行文件?

java - JAXB,公共(public)字段映射行为与带有 @XmlElement 注释的私有(private)字段不同

java - 尽管没有进行任何更改,简单的应用程序还是崩溃了

java - 在JTable中添加JcomboBox