Javaタイマークラスは、指定した間隔でタスクを実行するようにスケジュールできる強力なツールです。タスクを 1 回実行する必要がある場合でも、繰り返し実行する必要がある場合でも、タイマークラスは Java プログラムを自動化する便利な方法を提供します。この記事では、Java Timerクラスの機能を調べ、それを効果的に実装する方法を学びます。
Java タイマー クラスの概要
Timerクラスはjava.utilパッケージの一部であり、指定された時間または定期的な間隔で実行するタスクをスケジュールするために使用されます。これは、所定の間隔でコードを実行するためのシンプルで信頼性の高い方法を提供するため、イベントのトリガー、定期的な更新の実行、バックグラウンド プロセスのスケジュールなどのタスクに最適です。Timerクラスを使用するには、 java.util.TimerクラスからTimerオブジェクトを作成する必要があります。この Timer オブジェクトは、要件に基づいてタスクをスケジュールし、実行する役割を果たします。タイマーオブジェクトの作成
まずはTimerオブジェクトを作成し、そのメソッドを調べてみましょう。次のコード例では、Timerオブジェクトを作成し、指定された遅延後に 1 回実行されるタスクをスケジュールします。// First we will import the java.util.Timer & java.util.TimerTask classes
import java.util.Timer;
import java.util.TimerTask;
public class TimerExample {
public static void main(String[] args) {
Timer timer = new Timer(); // Creating a Timer object from the timer class
TimerTask task1 = new TimerTask() {
public void run() {
System.out.println("Task 1 executed!");
}
};
TimerTask task2 = new TimerTask() {
public void run() {
System.out.println("Task 2 executed!");
}
};
TimerTask task3 = new TimerTask() {
public void run() {
System.out.println("Task 3 executed!");
}
};
// Scheduling tasks to run after specified delays
timer.schedule(task1, 2000); // Using the schedule method of the timer class
timer.schedule(task2, 4000); // Using the schedule method of the timer class
timer.schedule(task3, 6000); // Using the schedule method of the timer class
}
}
この更新された例では、Timerクラスを使用してTimerオブジェクトが作成されます。各TimerTask は、タイマーによってスケジュールおよび実行されるタスクを表します。各TimerTask内のrunメソッドには、タスクの実行時に実行されるコードが含まれています。次に、タスクと遅延をミリ秒単位で指定して、Timerクラスのスケジュールメソッドを使用してタスクをスケジュールします。このコードでは、スケジュール メソッドが 3 回使用されており、毎回異なるタスクと遅延が設定されています。
出力
コードを実行すると、次のように出力されます。
タスク 1 が実行されました。タスク 2 が実行されました。タスク 3 が実行されました。
各タスクはそれぞれの遅延後に実行され、 Timerクラス の機能を示します。
タイマーメソッド
Timerクラスは、タスクの実行をスケジュールするためのさまざまなメソッドを提供します。一般的に使用されるいくつかの方法を見てみましょう。1.スケジュール(TimerTaskタスク、長い遅延)
このメソッドは、指定された遅延の後に指定されたタスクを実行するようにスケジュールします。遅延はミリ秒単位で指定します。例えば:timer.schedule(task, 5000); // Schedule the task to run after a 5-second delay
2.スケジュール(TimerTaskタスク、日時)
このメソッドは、指定された時刻に指定されたタスクを実行するようにスケジュールします。タスクは 1 回だけ実行されます。例えば:Date executionTime = new Date(System.currentTimeMillis() + 5000); // Get the current time + 5 seconds
timer.schedule(task, executionTime); // Schedule the task to run at the specified time
3.スケジュール(TimerTaskタスク、長い遅延、長い期間)
このメソッドは、指定された遅延の後、指定された間隔で繰り返し実行されるように、指定されたタスクをスケジュールします。遅延は最初の実行までの時間 (ミリ秒)、期間は後続の実行間の時間 (ミリ秒) です。例えば:timer.schedule(task, 2000, 5000); // Schedule the task to run after a 2-second delay and repeat every 5 seconds
Java タイマー スケジュール
基本的なスケジューリング メソッドに加えて、Timerクラスは、schedule(TimerTask task, Date firstTime, long period)と呼ばれる強力なスケジューリング メソッドも提供します。この方法を使用すると、特定の時間に定期的に開始されるタスクの繰り返し実行をスケジュールできます。このメソッドの使用法を示す例を次に示します。import java.util.Timer;
import java.util.TimerTask;
import java.util.Date;
public class TimerExample {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
System.out.println("Task executed!");
}
};
// Schedule the task to run every 5 seconds starting from the current time
Date startTime = new Date();
timer.schedule(task, startTime, 5000);
}
}
この例では、以前と同様にTimerオブジェクト を作成し、TimerTaskを定義します。また、タスクの開始時刻を指定するために、Date型のstartTimeオブジェクトも作成します。次に、スケジュールメソッドを使用して、現在の時刻から 5 秒ごとにタスクが実行されるようにスケジュールします。このスケジュール方法を使用すると、 Timerオブジェクトがキャンセルされるかプログラムが終了するまで、タスクは指定された間隔で実行され続けます。それ以外の場合は、例外がスローされます。
GO TO FULL VERSION