public class Timer extends Object
The normal scheduling will result in a more or less even delay in time between successive executions, but the executions could drift in time if the task (or other tasks) takes a long time to execute. Fixed delay scheduling guarantees more or less that the task will be executed at a specific time, but if there is ever a delay in execution then the period between successive executions will be shorter. The first method of repeated scheduling is preferred for repeated tasks in response to user interaction, the second method of repeated scheduling is preferred for tasks that act like alarms.
The Timer keeps a binary heap as a task priority queue which means that scheduling and serving of a task in a queue of n tasks costs O(log n).
TimerTask
Constructor and Description |
---|
Timer()
Creates a new Timer with a non daemon Thread as Scheduler, with normal
priority and a default name.
|
Timer(boolean daemon)
Creates a new Timer with a daemon Thread as scheduler if daemon is true,
with normal priority and a default name.
|
Timer(String name)
Create a new Timer whose Thread has the indicated name.
|
Timer(String name,
boolean daemon)
Create a new Timer whose Thread has the indicated name.
|
Modifier and Type | Method and Description |
---|---|
void |
cancel()
Cancels the execution of the scheduler.
|
int |
purge()
Removes all cancelled tasks from the queue.
|
void |
schedule(TimerTask task,
Date date)
Schedules the task at the specified data for one time execution.
|
void |
schedule(TimerTask task,
Date date,
long period)
Schedules the task at the specified date and reschedules the task every
period milliseconds after the last execution of the task finishes until
this timer or the task is canceled.
|
void |
schedule(TimerTask task,
long delay)
Schedules the task after the specified delay milliseconds for one time
execution.
|
void |
schedule(TimerTask task,
long delay,
long period)
Schedules the task after the delay milliseconds and reschedules the
task every period milliseconds after the last execution of the task
finishes until this timer or the task is canceled.
|
void |
scheduleAtFixedRate(TimerTask task,
Date date,
long period)
Schedules the task at the specified date and reschedules the task at a
fixed rate every period milliseconds until this timer or the task is
canceled.
|
void |
scheduleAtFixedRate(TimerTask task,
long delay,
long period)
Schedules the task after the delay milliseconds and reschedules the task
at a fixed rate every period milliseconds until this timer or the task
is canceled.
|
public Timer()
public Timer(boolean daemon)
public Timer(String name)
name
- the name of the Threadpublic Timer(String name, boolean daemon)
name
- the name of the Threaddaemon
- true if the Thread should be a daemon threadpublic void cancel()
public int purge()
public void schedule(TimerTask task, Date date)
IllegalArgumentException
- if date.getTime() is negativeIllegalStateException
- if the task was already scheduled or
canceled or this Timer is canceled or the scheduler thread has diedpublic void schedule(TimerTask task, Date date, long period)
IllegalArgumentException
- if period or date.getTime() is
negativeIllegalStateException
- if the task was already scheduled or
canceled or this Timer is canceled or the scheduler thread has diedpublic void schedule(TimerTask task, long delay)
IllegalArgumentException
- if delay or
System.currentTimeMillis + delay is negativeIllegalStateException
- if the task was already scheduled or
canceled or this Timer is canceled or the scheduler thread has diedpublic void schedule(TimerTask task, long delay, long period)
IllegalArgumentException
- if delay or period is negativeIllegalStateException
- if the task was already scheduled or
canceled or this Timer is canceled or the scheduler thread has diedpublic void scheduleAtFixedRate(TimerTask task, Date date, long period)
IllegalArgumentException
- if period or date.getTime() is
negativeIllegalStateException
- if the task was already scheduled or
canceled or this Timer is canceled or the scheduler thread has diedpublic void scheduleAtFixedRate(TimerTask task, long delay, long period)
IllegalArgumentException
- if delay or
System.currentTimeMillis + delay is negativeIllegalStateException
- if the task was already scheduled or
canceled or this Timer is canceled or the scheduler thread has died