Friday, April 26, 2024
HomeJavaWhat's Timer and TimerTask in Java – Tutorial Instance

What’s Timer and TimerTask in Java – Tutorial Instance


Timer in Java is a utility class that’s used to schedule duties for each
one time and repeated execution.
Timer is analogous
to the alarm facility many individuals use in cellphones. Similar to you’ll be able to have one
time alarm or repeated alarm, You need to use
java.util.Timer to
schedule a time process or repeated process. In truth, we are able to implement a
Reminder utility
utilizing Timer in Java and that is what we’re going to see on this instance of
Timer in Java. Two lessons java.util.Timer and java.util.TimerTask is used to
schedule jobs in Java and kinds Timer API. 
The TimerTask is an precise process that’s executed by Timer. Just like Thread in JavaTimerTask additionally implements the Runnable interface and overrides run methodology to specify a process particulars. 


This Java tutorial can even spotlight the distinction between Timer and TimerTask class and explains how Timer
works in Java. By the best way, the distinction between Timer and Thread can also be a well-liked
Java questions on fresher-level interviews.

What’s Timer and TimerTask in Java

Timer in Java is a utility class from java.util bundle
which supplies the ability to schedule duties at any time sooner or later. As I mentioned
earlier,
Timer is analog to the alarm clock you arrange in your smartphone. 


Similar to alarm may be both one time or recurring, You can too schedule process
for one time and recurring time interval utilizing Timer API. Timer supplies methodology
to schedule Job the place the duty is an occasion of
TimerTask class,
which implements the 
Runnable interface and overrides run() methodology to
outline process which is named on scheduled time.

How Timer works in Java?

Timer class in Java maintains a background Thread (this might be either daemon thread or consumer thread,
primarily based on the way you created your Timer object), additionally referred to as timer’s process
execution thread. For every Timer, there can be a corresponding process processing Thread that runs the scheduled
process on the specified time. 



In case your Timer thread just isn’t daemon then it’s going to cease
your utility from exits till it completes all scheduled duties. It is
beneficial that TimerTask shouldn’t be very lengthy in any other case it could actually preserve
this thread busy and never permit different scheduled duties to get accomplished. 



This will
delay the execution of different scheduled duties, which can queue up and execute in
fast succession as soon as the offending process is accomplished.

Here’s a good diagram which illustrate how Timer works in Java:

Distinction between Timer and TimerTask in Java

I’ve seen programmers getting confused between Timer and TimerTask, which is
fairly pointless as a result of these two are altogether totally different. You simply must
keep in mind:

1) Timer in Java schedules and execute TimerTask which is
an implementation of Runnable interface and overrides
run methodology to outline the precise process carried out by that
TimerTask.

2) Each Timer and TimerTask present a cancel() methodology. Timer’s
cancel() methodology cancels the entire timer whereas TimerTask’s one cancels solely a
specific process. I believe that is the value noting distinction between
Timer and TimerTask in Java.

Additionally, here’s a good desk which highlights all of the distinction between Timer and TimerTask in Java:

Canceling
Timer in Java

You’ll be able to cancel Java Timer by calling the cancel() methodology of java.util.Timer class,
this may consequence within the following:

1) Timer is not going to cancel any at the moment executing process.

2) Timer will discard different scheduled duties and can
not execute them.

3) As soon as the at the moment executing process might be completed, the timer thread will
terminate gracefully.

4) Calling Timer.cancel() a couple of time is not going to
have an effect on. the second name might be ignored.

Along with canceling Timer, You can too cancel
particular person
TimerTask through the use of the cancel() methodology of TimerTask itself. You’ll be able to additional see these Java Multithreading programs to be taught extra about Thread and TimerTask in Java. 

Timer
and TimerTask instance to schedule Duties

Right here is one instance of Timer and TimerTask in Java to implement Reminder
utility.

public class JavaReminder {

    Timer timer;

    public JavaReminder(int seconds) {

        timer = new Timer();  //At this line a brand new Thread might be
created

        timer.schedule(new RemindTask(), seconds*1000); //delay in
milliseconds

    }

    class RemindTask extends TimerTask {

        @Override

        public void run() {

            System.out.println(“ReminderTask
is accomplished by Java timer”
);

            timer.cancel(); //Not vital
as a result of we name System.exit

            //System.exit(0);
//Stops the AWT thread (and every little thing else)

        }

    }

    public static void major(String args[]) {

        System.out.println(“Java
timer is about to begin”
);

        JavaReminder
reminderBeep
= new JavaReminder(5);

        System.out.println(“Remindertask
is scheduled with Java timer.”
);

    }

}

Output

Java timer is about to begin

Remindertask is scheduled with a Java timer.

ReminderTask is accomplished by Java timer  //this can print after 5 seconds

Vital
factors on Timer and TimerTask in Java

Timer and TimerTask example in JavaNow we all know what’s Timer and TimerTask in Java,
Methods to use them, Methods to cancel then and acquired an understanding of How Timer works
in Java. It’s a superb time to revise the 
Timer and TimerTask.

1. One Thread might be created corresponding ot every Timer in Java, which may
be both daemon or consumer thread.

2.You’ll be able to schedule a number of TimerTask with one
Timer.

3.You’ll be able to schedule duties for both one-time execution or recurring
execution.

4.TimerTask.cancel() cancels solely that
specific process, whereas
Timer.cancel() cancel all process scheduled in
Timer.

5. Timer in Java will throw IllegalStateException in case you strive
to schedule a process on a Timer that has been canceled or whose Job execution Thread
has been terminated.

That is all on what’s Timer and TimerTask in Java
and the distinction between
Timer and TimerTask in Java. An excellent understanding of Timer API is required by Java programmers to take most
benefit of scheduling options offered by Timer. They’re important and might
be utilized in quite a lot of methods e.g. to periodically take away clear cache,  to carry out well timed jobs, and many others.

Different Java Multithreading Tutorials from Javarevisited Weblog



RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments