![](/img/trans.png)
[英]How to keep thread waiting in ScheduledExecutorService that has been shutdown
[英]How verify a ScheduledExecutorService has started?
描述
任務A正在運行,可能持續2s到60 + s。
當A運行時,我安排了一個ExecutorService,該服務在10s(延遲)后每5s(固定速率)打印一次“ running”。
ScheduledExecutorService scheduleNotifications = Executors
.newSingleThreadScheduledExecutor();
scheduleNotifications.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
System.out.println("A is running");
}
}, 10, 5, TimeUnit.SECONDS);
完成A后,我希望打印“ A完成”。 但僅當我的ScheduledExecutorService任務已啟動時 ,這意味着它至少打印一次“正在運行”。
我如何才能做到這一點,而無需在schduled runnable
使用布爾標志。 有沒有辦法檢查我的服務是否啟動?
ScheduledThreadPoolExecutor scheduler = new ScheduledThreadPoolExecutor(1);
scheduler.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
System.out.println("A is running");
}
}, 10, 5, TimeUnit.SECONDS);
Thread.sleep(20000);
scheduler.shutdown();
if (scheduler.getCompletedTaskCount() > 0) {
System.out.println("A is done.");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.