Javaで特定のメソッドを定期的に実行する方法を教えてください
Javaでは、TimerとTimerTaskのクラスを使用して、特定のメソッドの定期実行を実現できます。
まずTimerTaskを継承したクラスを作成し、定期的に実行させたい処理を実装するrunメソッドをオーバーライドします。
import java.util.TimerTask;
public class MyTask extends TimerTask {
@Override
public void run() {
// 执行需要定时执行的方法
}
}
必要に応じてタイマーオブジェクトを作成し、定期実行する間隔と実行するタスクを指定する schedule() メソッドを呼び出す。
import java.util.Timer;
public class Main {
public static void main(String[] args) {
Timer timer = new Timer();
MyTask task = new MyTask();
// 每隔1秒执行一次
timer.schedule(task, 0, 1000);
}
}
そうすると、MyTaskのrunメソッドは1秒ごとに実行されます。ただし、Timerは単一スレッドなので、タスクの実行時間がタイマーの時間間隔を超えるとタスクの実行が遅延します。より正確なタイミング実行が必要な場合は、ScheduledExecutorServiceクラスの使用を検討してください。