java.util.Timer.scheduleAtFixedRate() Method



The scheduleAtFixedRate(TimerTask task,Date firstTime,long period) method is used to schedule the specified task for repeated fixed-rate execution, beginning at the specified time.


Following is the declaration for java.util.Timer.scheduleAtFixedRate() method.

public void scheduleAtFixedRate(TimerTask task,Date firstTime,long period)


  • task − This is the task to be scheduled.

  • firstTime − This is the first time at which task is to be executed.

  • period − This is the time in milliseconds between successive task executions.

Return Value



  • IllegalArgumentException − This exception is thrown if time.getTime() is negative.

  • IllegalStateException − This is thrown if task was already scheduled or cancelled, timer was cancelled, or timer thread terminated.


The following example shows the usage of java.util.Timer.scheduleAtFixedRate()

package com.tutorialspoint;

import java.util.*;

public class TimerDemo {
   public static void main(String[] args) {

      // creating timer task, timer
      TimerTask tasknew = new TimerScheduleFixedRate();
      Timer timer = new Timer();

      // scheduling the task at fixed rate
      timer.scheduleAtFixedRate(tasknew,new Date(),1000);      
   // this method performs the task
   public void run() {
      System.out.println("working at fixed rate");      

Let us compile and run the above program, this will produce the following result.

working at fixed rate
working at fixed rate
working at fixed rate
working at fixed rate and so on ...