0
我想爲多個請求運行定時器。如果我收到一個請求,我將在中間運行1000ms
的計時器,如果我得到另一個需要更新計時器的請求。如果我沒有收到1000ms
的任何請求,我需要退出該過程。如何創建一個可以在Java中多次使用的定時器
如何實現這樣一個計時器?我無法使用Timer任務執行操作。
我想爲多個請求運行定時器。如果我收到一個請求,我將在中間運行1000ms
的計時器,如果我得到另一個需要更新計時器的請求。如果我沒有收到1000ms
的任何請求,我需要退出該過程。如何創建一個可以在Java中多次使用的定時器
如何實現這樣一個計時器?我無法使用Timer任務執行操作。
您可以使用ScheduledExecutorService的
樣品波紋管:
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
public class A {
public static void main(String[] args) {
Runnable terminate = new Runnable() {
@Override
public void run() {
System.out.println("Terminate task executed");
}
};
ScheduledExecutorService timer = Executors.newSingleThreadScheduledExecutor();
ScheduledFuture<?> futureTask = timer.schedule(terminate, 1, TimeUnit.SECONDS);
futureTask.cancel(true);
System.out.println("Timer Canceled");
futureTask = timer.schedule(terminate, 1, TimeUnit.SECONDS);
futureTask.cancel(true);
System.out.println("Timer Canceled");
}
}
如果你運行它,你會看到終止任務永遠不會運行,因爲它是在1秒之前取消通過
謝謝......我明白了。 – user3201343
你有什麼嘗試到目前爲止?你能粘貼你嘗試過的代碼嗎?它會幫助社區幫助你。 – Welshboy
顯示至少要執行的代碼框架,它不能是'TimerTask'。 – SubOptimal
我嘗試使用Timer Task,代碼片段在下面分享。 – user3201343