説明
タスク A が実行されており、2 秒から 60 秒以上かかることがあります。
A の実行中に、10 秒 (遅延) 後に 5 秒ごと (固定レート) に「実行中」と出力される ExecutorService をスケジュールしました。
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 タスクが開始された場合のみ、つまり少なくとも 1 回は「実行中」と出力されます。
- A が 10 秒前に終了した場合、何も印刷しません。
- A に 10 秒以上かかる場合は、5 秒ごとに「実行中」と出力し、A が終了したら「完了」と出力します。
schduled 内でブール値フラグを使用せずに、どうすればそれを行うことができますかrunnable
。サービスが開始されたことを確認する方法はありますか?