[英]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.