JAVA開発メモ
Timer
 

[リロード]   [新規|編集|差分|添付]   [トップ|一覧|単語検索|最終更新|バックアップ|ヘルプ]

サイトメニュー
最新の20件
2018-08-012018-02-222016-12-222015-06-242013-07-032013-02-262011-01-122010-06-082010-03-092010-03-032009-12-302009-10-302009-02-252009-02-242009-02-112008-09-242008-09-232008-09-16


java.util.Timer

バックグラウンドで実行されるタスクをスケジュールするスレッドのためのクラスです。 タスクは、1回だけ、または定期的に繰り返し実行されるようにスケジュールされます。

Timerクラスはスレッドセーフです。複数のタスクを使用してもスレッドは増加しません。

メソッドの概要

  • cancel()
    • 現在スケジュールされているタスクを破棄して、このタイマーを終了します。タスク一つをキャンセルしたい場合は、TimerTask?のcancelメソッドを実行します。
  • schedule(TimerTask? task, Date time)
    • 指定した時間に指定したタスクが実行されるようスケジュールします。過去の時間を指定すると、タスクはただちに実行されるようスケジュールされます。
  • schedule(TimerTask? task, Date firstTime, long period)
    • 指定したタスクが、指定した時間に開始され、遅延実行を繰り返すようにスケジュールします。
  • schedule(TimerTask? task, long delay)
    • 指定した遅延のあとに、指定したタスクが実行されるようスケジュールします。
  • schedule(TimerTask? task, long delay, long period)
    • 指定したタスクが、指定した遅延のあとに開始され、遅延実行を繰り返すようにスケジュールします。
  • scheduleAtFixedRate?(TimerTask? task, Date firstTime, long period)
    • 指定したタスクが、指定した時間に開始され、「固定頻度実行*1」を繰り返すようにスケジュールします。
  • scheduleAtFixedRate?(TimerTask? task, long delay, long period)
    • 指定したタスクが、指定した遅延のあとに開始され、「固定頻度実行」を繰り返すようにスケジュールします。

サンプル

  • タスクの例
 import java.util.TimerTask;
 
 public class SampleTask extends TimerTask {
 
     public void run() {
         // タスクの処理
     }
 }

  • 指定時刻にタスクを実行
 final String DATE_FORMAT = "yyyy/MM/dd HH:mm:ss";
 SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
 		
 Timer timer = new Timer();
 TimerTask task = new SampleTask();
 // サンプルタスクを2004年1月1日0時0分0秒に実行
 timer.schedule(task, sdf.parse("2004/01/01 00:00:00"));

  • 繰り返しタスクを実行
 Timer timer = new Timer();
 TimerTask task = new SampleTask();
 // サンプルタスクを今から1分毎に実行
 timer.schedule(task, 0, 60000);

*1 固定頻度実行では、最初の実行のスケジュールされた実行時間を基準にしてそれぞれの実行がスケジュールされます。何らかの理由で実行が遅延した場合 (ガベージコレクションまたはその他のバックグラウンド作業など)、「遅れを取り戻す」ために 2 つ以上の実行が連続して行われます。最終的に実行の頻度は、指定した期間の対応する頻度と同じになります

リロード   新規 編集 差分   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: Tue, 15 Feb 2005 23:08:09 JST (5326d)
Link: 開発Tips(4011d)

Modified by MT22(Moriwaki Takashi)

"PukiWiki" 1.3.7 Copyright © 2001,2002,2003 PukiWiki Developers Team. License is GNU/GPL.
Based on "PukiWiki" 1.3 by sng
Powered by PHP 5.3.29

HTML convert time to 0.019 sec.