Java.util.Timer Class in Java (original) (raw)

Last Updated : 14 Nov, 2021

Timer class provides a method call that is used by a thread to schedule a task, such as running a block of code after some regular instant of time. Each task may be scheduled to run once or for a repeated number of executions. Each timer object is associated with a background thread that is responsible for the execution of all the tasks of a timer object.
Note:

Constructors:

Declaration:

public class Timer extends Object

Methods inherited from class java.lang.Object

Methods:

public void cancel()

public int purge() Returns: the number of tasks removed from the queue

public void schedule(TimerTask task, Date time) Parameters: task - task to be scheduled. time - time at which task is to be executed. Throws: IllegalArgumentException - if time.getTime() is negative. IllegalStateException - if the task was already scheduled or cancelled, the timer was cancelled, or timer thread terminated. NullPointerException - if task or time is null

public void schedule(TimerTask task, Date firstTime, long period) Parameters: task - task to be scheduled. firstTime - First time at which task is to be executed. period - time in milliseconds between successive task executions. Throws: IllegalArgumentException - if firstTime.getTime() < 0, or period <= 0 IllegalStateException - if task was already scheduled or cancelled, timer was cancelled, or timer thread terminated. NullPointerException - if task or firstTime is null

Java

import java.util.Timer;

import java.util.TimerTask;

class Helper extends TimerTask

{

`` public static int i = 0 ;

`` public void run()

`` {

`` System.out.println( "Timer ran " + ++i);

`` }

}

public class Test

{

`` public static void main(String[] args)

`` {

`` Timer timer = new Timer();

`` TimerTask task = new Helper();

`` timer.schedule(task, 2000 , 5000 );

`` }

}

Output:

Timer ran 1 Timer ran 2 Timer ran 3 Timer ran 4 Timer ran 5 . . .

public void schedule(TimerTask task, long delay) Parameters: task - task to be scheduled. delay - delay in milliseconds before task is to be executed. Throws: IllegalArgumentException - if delay is negative, or delay + System.currentTimeMillis() is negative. IllegalStateException - if a task was already scheduled or cancelled, the timer was cancelled, or timer thread terminated. NullPointerException - if task is null

public void schedule(TimerTask task, long delay, long period) Parameters: task - task to be scheduled. delay - delay in milliseconds before task is to be executed. period - time in milliseconds between successive task executions. Throws: IllegalArgumentException - if delay < 0, or delay + System.currentTimeMillis() < 0, or period <= 0 IllegalStateException - if task was already scheduled or cancelled, timer was cancelled, or timer thread terminated. NullPointerException - if task is null

public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period) Parameters: task - task to be scheduled. firstTime - First time at which task is to be executed. period - time in milliseconds between successive task executions. Throws: IllegalArgumentException - if firstTime.getTime() < 0 or period <= 0 IllegalStateException - if task was already scheduled or cancelled, timer was cancelled, or timer thread terminated. NullPointerException - if task or firstTime is null

public void scheduleAtFixedRate(TimerTask task, long delay, long period) Parameters: task - task to be scheduled. delay - delay in milliseconds before task is to be executed. period - time in milliseconds between successive task executions. Throws: IllegalArgumentException - if delay < 0, or delay + System.currentTimeMillis() < 0, or period <= 0 IllegalStateException - if task was already scheduled or cancelled, timer was cancelled, or timer thread terminated. NullPointerException - if task is null

Java

import java.util.Timer;

import java.util.TimerTask;

import java.util.*;

class Helper extends TimerTask

{

`` public static int i = 0 ;

`` public void run()

`` {

`` System.out.println( "Timer ran " + ++i);

`` if (i == 4 )

`` {

`` synchronized (Test.obj)

`` {

`` Test.obj.notify();

`` }

`` }

`` }

}

public class Test

{

`` protected static Test obj;

`` public static void main(String[] args) throws InterruptedException

`` {

`` obj = new Test();

`` Timer timer = new Timer();

`` TimerTask task = new Helper();

`` Date date = new Date();

`` timer.scheduleAtFixedRate(task, date, 5000 );

`` System.out.println( "Timer running" );

`` synchronized (obj)

`` {

`` obj.wait();

`` timer.cancel();

`` System.out.println(timer.purge());

`` }

`` }

}

Output:

Timer running Timer ran 1 Timer ran 2 Timer ran 3 Timer ran 4 0

Reference: