JDKタイマーの使い方

PHP中文网
リリース: 2017-06-28 10:34:11
オリジナル
1597 人が閲覧しました

タイマーによって実行されるタスクの実装とスケジュール
1) TimerTask のカスタム サブクラスを実装します。 run メソッドには、タスクを実行するコードが含まれています。
class RemindTask extends TimerTask {
public void run() {
System.out.println("Time up!");
System.exit(0);
}
}
2) Timer クラスをインスタンス化してスレッドを作成します
Timer timer = new timer();
3) タイマー タスク オブジェクトをインスタンス化します(new RemindTask())
RemindTask task = new RemindTask();
4) タイマー タスクをスケジュールします実行のために。
(1) 特別なミリ秒の遅延の後にタスクを実行します。
timer.schedule(task,5*1000);
(2) タスクが実行される時間を指定します。
// 11:01 にタスクを実行しますp.m
Calendar Calendar = Calendar.getInstance();
Calendar.set(Calendar.HOUR_OF_DAY,23);
Calendar.set(Calendar.MINUTE,1);
Calendar.set(Calendar.SECOND,0);
日付時刻= Calendar.getTime();

timer.schedule(task,time);

タイマー スレッドの停止
デフォルトでは、プログラムはタイマー スレッドが実行されている限り実行を続けます。タイマー スレッドを終了するには 4 つの方法があります
1) タイマーでキャンセルを呼び出します(timer.cancel())
2) 次のようにタイマーを作成して、タイマーのスレッドをデーモン (后台) にします: new Timer(true) 。プログラム内にデーモン スレッドだけが残っている場合、プログラムは終了します。 3) タイマーでスケジュールされたタスクの実行がすべて終了したら、Timer オブジェクトへの参照をすべて削除します。タイマー スレッドは終了します。
4) System.exit メソッドを呼び出します。これにより、プログラム全体とそのすべてのスレッドが終了します。

タスクを繰り返し実行する
タスクを繰り返し実行するための Timer メソッドは 4 つあります
*schedule(TimerTask task, long late, long period)
指定された遅延後に開始される、指定されたタスクの固定遅延の繰り返し実行をスケジュールします。後続の実行は、指定された期間で区切られたほぼ一定の間隔で行われます。
繰り返しのタスクを実行する、最初は遅延時間後に実行、往来は特定の時間間隔で実行
timer.schedule(new RemindTask(),3) *1000,1*1000)
RemindTask タスクは 3 秒後に会議を実行し、その後は 1 秒の間隔で会議を繰り返し実行します

* スケジュール(TimerTask タスク、日時、長期)
繰り返しのタスクを実行します、最初次は指定された時間内に実行、往来は指定された時間間隔で実行

*scheduleAtFixedRate(TimerTask task, long late, long period)
指定された遅延後に開始される、指定されたタスクの繰り返し固定レート実行をスケジュールします。後続の実行は、指定された期間で区切られ、ほぼ一定の間隔で行われます。
一定の時間で繰り返しのタスクが実行され、初回は指定された時間の後に実行され、次の実行は指定された時間の後に実行されます
temer.scheduleAtFixedRate( new RemindTask(),3*1000,1*1000)
*ScheduleAtFixedRate(TimerTask task, Date firstTime, long period)
繰り返しのタスクを実行、最初は特定の時間内に実行、往来は特定の時間間隔で実行

スケジュール和スケジュールフィクスドレート的的在于、スケジュール以固定以相对相对间隔间隔、如果如果某一次次执行执行执行执行执行的的时间ある一回の実行が遅延すると、その後の実行の遅延は短くなる可能性があります。

以上がJDKタイマーの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート