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

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

以上是 从Java中的计时器任务队列中删除所有已取消的任务 的全部内容, 来源链接: utcz.com/z/362018.html

回到顶部