javaの定期タスクで重複実行を防ぐには、
Javaのスケジュールタスクでは、タスクの完了前にタスクの再実行を停止したい場合があります。タスクの再実行を停止するには、いくつかの方法があります。
- タイマー
- 予定
- 遅延
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// 任务代码
}
}, 0);
- スケジュール実行サービス
- スケジュールされた実行サービス
- 予定
- 初期遅延
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.schedule(new Runnable() {
@Override
public void run() {
// 任务代码
}
}, 0, TimeUnit.SECONDS);
- アトミックboolean
- アトミックブール
private AtomicBoolean isTaskExecuted = new AtomicBoolean(false);
public void scheduledTask() {
if (isTaskExecuted.compareAndSet(false, true)) {
// 任务代码
}
}
時間割タスクの重複実行を防ぐ方法は上記の通りで、あなたのニーズに応じて適切な方法を選択して使用できます。