Timer类的方法之一是int purge()方法。purge()方法从计时器的任务队列中删除所有已取消的任务。调用此方法不会影响计时器的行为,而是会从队列中删除对已取消任务的引用。从JDK 1.5开始,就使用了purge()方法。
purge()方法充当时空权衡的一种媒介,在此过程中,空间会交换时间。更具体地说,该方法的时间复杂度与n + c log n成正比,其中n是队列中的任务数,c是已取消任务的数。
声明-java.util.Timer.purge()方法的声明如下-
public int purge()
让我们看一下purge()方法的示例程序
import java.util.*; public class Example { public static void main(String[] args) { Timer timer = new Timer(); // creating timer TimerTask task = new TimerTask() // creating timer task { public void run() { for(int i=1; i<=5;i++) { System.out.println("Task is running"); if(i>=3) { System.out.println("Task terminated"); timer.cancel(); break; } } //通过清除计时器打印任务的清除值 System.out.println("任务的清除是 "+timer.purge()); }; }; timer.schedule(task,7000,4000); } }
输出结果
Task is running Task is running Task is running Task terminated 任务的清除是 0