从 Java 中的定时器任务队列中删除所有已取消的任务


Timer 类的 int purge() 方法是该类的一种方法。purge() 方法会从计时器的任务队列中删除所有已取消的任务。调用该方法不会影响计时器的行为,而是从队列中删除对已取消任务的引用。purge() 方法自 JDK 1.5 起出现。

purge() 方法充当了时间空间权衡的媒介,它以时间换取空间。更具体地说,该方法的时间复杂度与 n + clog 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;
               }
            }
            // printing the purge value of the task by purging the timer
            System.out.println("The purge of the task is "+timer.purge());
         };
      };
      timer.schedule(task,7000,4000);
   }
}

输出

Task is running
Task is running
Task is running
Task terminated
The purge of the task is 0

更新于:26-6-2020

294 查看数

开启你的 职业生涯

完成课程以获得认证

开始
广告
© . All rights reserved.