タイマー

Timerクラス

バックグラウンド スレッドで、スケジューリングされたタスクを実行できます。タイマーで実行するタスクは、TimerTaskクラスで定義します。

Timer(String name, boolean isDaemon)

nameでスレッドの名前を指定します。isDeamonをtrueとするとデーモンスレッドとなります。

パラメータを省略したときには、isDeamonにはfalseが渡されユーザースレッドとなります。

  1. Timer()
  2. Timer(boolean isDaemon)
  3. Timer(String name)
Timer (Java Platform SE 7)

TimerTaskクラス

TimerTaskはRunnableインターフェイスを実装しています。

TimerTask task = new TimerTask(){

    @Override
    public void run() {
        // TODO
    }
};
TimerTask (Java Platform SE 7)

タスクのスケジューリング

タスクのスケジューリングには3種類あります。

  • 単発 (once-only) … 1度だけ実行
  • 固定遅延 (fixed-delay) … 周期的に実行。周期は、直前の開始時間からの相対時間。
  • 固定レート (fixed-rate) … 周期的に実行。周期は、最初の開始時間からの相対時間。

最初の実行タイミングを決める方法は2種類あります

  • long delay … 実行するまでの時間を指定
  • Date time … 実行する時間を指定 (Dateクラス)
種類 メソッド
単発
public void schedule(TimerTask task, long delay)
public void schedule(TimerTask task, Date time)
固定遅延
public void schedule(TimerTask task, long delay, long period)
public void schedule(TimerTask task, Date firstTime, long period)
固定レート
public void scheduleAtFixedRate(TimerTask task, long delay, long period)
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
Javaのドキュメントから検索