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 nullJava
// Java program to demonstrate
//schedule method calls of Timer class
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 nullJava
// Java program to demonstrate
// scheduleAtFixedRate method of Timer class
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();
//creating a new instance of timer class
Timer timer = new Timer();
TimerTask task = new Helper();
//instance of date object for fixed-rate execution
Date date = new Date();
timer.scheduleAtFixedRate(task, date, 5000);
System.out.println("Timer running");
synchronized(obj)
{
//make the main thread wait
obj.wait();
//once timer has scheduled the task 4 times,
//main thread resumes
//and terminates the timer
timer.cancel();
//purge is used to remove all cancelled
//tasks from the timer'stack queue
System.out.println(timer.purge());
}
}
}
Output:
Timer running Timer ran 1 Timer ran 2 Timer ran 3 Timer ran 4 0
Reference:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4