ホームページ  >  記事  >  Java  >  Java タイマーの使用 (タイマーの概要)

Java タイマーの使用 (タイマーの概要)

高洛峰
高洛峰オリジナル
2016-12-16 13:21:021499ブラウズ

開発では、数分ごとに操作を実行するなど、いくつかの定期的な操作を実行する必要があることがよくあります。現時点では、タイマーを設定する必要があります。Java でタイマーを実装する最も便利で効率的な方法は、java.util.Timer ツール クラスを使用して、java.util.TimerTask タスクをスケジュールすることです。

1. はじめに

タイマーは、スレッドが将来バックグラウンド スレッドで実行されるタスクをスケジュールするために使用するツールです。タスクは 1 回実行するか、定期的に繰り返すようにスケジュールできます。これは実際には、スケジュールされたスケジューリングによって所有されるスレッド、TimerTasks です。

TimerTask は抽象クラスであり、そのサブクラスは Timer によって 1 回限りの実行または繰り返し実行されるタスクとして配置されます。実際には run メソッドを持つクラスであり、定期的に実行する必要があるコードは run メソッド本体に配置されます。

2. メソッド

Timer = Timer(true); の呼び出し javax.swing パッケージにも Timer クラスがあることに注意してください。対立。 TTimrtask task = New Timrtask () {

Public void run () {

... // 実行する必要があるコードをこの中に入れます。

}

};

//タスクをスケジュールするためによく使用されるいくつかのメソッドを次に示します。

timer.schedule(task, ti​​me)//time は日付型です。指定された時間。

timer.schedule(task, firstTime, period);

// firstTime は Date 型で、period が長い

// firstTime から開始して、period ミリ秒ごとに実行します。

timer.schedule(task, late)

// 遅延が長い タイプ: 今から遅延ミリ秒後に一度実行

timer.schedule(task, late, period)

// 遅延が長い ,期間が長い: 今からミ​​リ秒の遅延の後、期間

// ミリ秒ごとに実行されます。

schedule() とscheduleAtFixedRate() の違いは何ですか?

まず、schedule(TimerTask task,Date time) とschedule(TimerTask task,long late) は単一の実行操作のみであり、タスクを複数回呼び出す状況はありません。そのため、scheduleAtFixedRate を呼び出す方法はありません。方法。これらはすべて同じ機能を実装していますが、違いは何でしょうか?

(1)schedule() メソッドは、間隔の安定性を維持することにさらに注意を払い、期間ごとに 1 回呼び出せるようにします。

(2)scheduleAtFixedRate() メソッドは、実行頻度の安定性の維持にさらに注意を払います。つまり、複数の呼び出しの頻度が周期時間に近づくようにします。特定の呼び出しの時間が周期よりも大きい場合、次回は実行されます。周波数が周期に近づくように、周期よりもできるだけ小さくなります。

3. デモの例

カスタマイズされたタスク:

import java.util.Timer;

import java.util.TimerTask;

public void run () {

// TODO 自動生成されたメソッドスタブ

System. out.println("タスクを実行...");

}

}

java.util.Timer:

import java を呼び出します。

public class Test {

public static void main(String[] args){

タイマー timer = new Timer();

カレンダー Calendar = Calendar.getInstance();

Calendar.set(Calendar.HOUR_OF_DAY, 12);//時間を制御

Calendar.set(Calendar.MINUTE, 0);//分を制御

Calendar.set(Calendar.SECOND, 0);//秒を制御


日付時刻 = カレンダー。 getTime();// タスクの実行時間は 12:00:00 です

Timer timer = new Timer(); // 毎日 12:00 操作を実行し、1 日遅らせてからもう一度実行してください

timer.schedule(new TimerTaskTest(), time, 1000 * 60 * 60 * 24); タイマーツールクラス Timer に不備があればご指摘ください。興味のある方は、別のタイマー オープンソース プロジェクト QUARTZ をチェックしてください。 分かち合うことは一種の幸福であり、持続することは一種の精神です。

Java タイマーの使い方 (タイマー入門) に関連する記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。