從 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 檢視數

開啟你的 職業生涯

完成課程以獲得認證

開始
廣告