簡體   English   中英

Java 代碼應每 5 秒執行一分鍾

[英]Java code should execute every 5 seconds for one minute

我的要求是我的 java 代碼應該每 5 秒執行一次,直到一分鍾。 我的代碼應該在 1 分鍾完成后每 5 秒開始運行,它應該停止執行,這意味着我的代碼應該執行 12 次並且應該停止。 我在這個例子的幫助下嘗試了 java util Timer 和 TimerTask ......但它滿足了我的要求,它具有每 5 秒執行一次的功能,但它沒有在一分鍾后終止執行的功能......

任何建議都會有所幫助謝謝...

從 Java 1.5 開始,引入了 ScheduledExecutorService 並且它比 TimerTask 更受歡迎。 你可以用它來實現你的要求:

ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(2);
    ScheduledFuture<?> schedule = executor.scheduleAtFixedRate(() -> {
        //do what you want
    }, 0, 5, TimeUnit.SECONDS);

    executor.schedule(() -> schedule.cancel(false), 1, TimeUnit.MINUTES);

正如您所看到的 scheduleAtFixedRate 安排您的主要任務以固定速率每 5 秒運行一次。 如果您希望它在任務之間休眠 5 秒,請嘗試使用 scheduleWithFixedDelay。 第二個計划在一分鍾后只運行一次以取消前一個計划。

編輯:

要在 1.8 之前的 Java 中使用,只需將 lambda 部分()->{...}替換為

new Runnable() {
            @Override
            public void run() {
              ...
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM