Java Timer klass
I Java, Timer är en klass som tillhör java.util paket. Det förlänger Objekt klass och implementerar Serialiserbar gränssnitt. Klassen tillhandahåller konstruktörer och metoder som kan användas för att utföra tidsrelaterade aktiviteter. Med klassen Timer kan vi schemalägga uppgiften som vi vill utföra vid en viss tidpunkt.
Observera att Timer-klassen är en trådsäker klass. Det betyder att endast en tråd kan exekvera timerklassmetoden. En annan punkt att notera att klassen använder binär högdatastruktur för att lagra sin uppgift.
Timer Java-program
Schemalägga en uppgift som ska utföras av timertråd
ScheduleTimer.java
import java.util.Calendar; import java.util.Timer; import java.util.TimerTask; public class ScheduleTimer { public static void main(String args[]) { //instance of the Timer class Timer timer = new Timer(); TimerTask task = new TimerTask() { //represent the time after which the task will begin to execute int i = 5; @Override public void run() { if(i>0) { System.out.println(i); i--; } else { System.out.println('Wish You Very Happy Birthday!!'); //cancel the task once it is completed timer.cancel(); } } }; //creating an instance of the Calendar class Calendar date = Calendar.getInstance(); //setting the date and time on which timer will begin date.set(2022, Calendar.MARCH, 30,23, 59, 54); //enables the counter to count at a rate of 1 second timer.scheduleAtFixedRate(task, date.getTime(), 1000); } }
Produktion:
kasta kast i java
5 4 3 2 1 Wish You Very Happy Birthday!!
Låt oss se ett annat Java-program där vi har utfört en uppgift efter ett visst tidsintervall.
TimerDemo.java
import java.util.Timer; import java.util.TimerTask; public class TimerDemo { Timer timer = new Timer(); TimerDemo(int seconds) { //schedule the task timer.schedule(new RemindTask(), seconds*1000); } class RemindTask extends TimerTask { public void run() { System.out.println('You have a notification!'); //terminate the timer thread timer.cancel(); } } //driver code public static void main(String args[]) { //function calling new TimerDemo(10); } }
Produktion:
You have a notification!
Programmet tar 10 sekunder att visa meddelandet på konsolen.
Starta och stoppa en timer
StartStopTimer.java
import java.util.Timer; import java.util.TimerTask; class Task extends TimerTask { int counter; public Task() { counter = 0; } public void run() { counter++; System.out.println('Ring ' + counter); } public int getCount() { return counter; } } public class StartStopTimer { private boolean running; private Task task; private Timer timer; public StartStopTimer() { timer = new Timer(true); } public boolean isRinging() { return running; } public void startRinging() { running = true; task = new Task(); timer.scheduleAtFixedRate(task, 0, 3000); } public void doIt() { running = false; System.out.println(task.getCount() + ' times'); task.cancel(); } public static void main(String args[]) { StartStopTimer phone = new StartStopTimer(); phone.startRinging(); try { System.out.println('started running...'); Thread.sleep(20000); } catch (InterruptedException e) { } phone.doIt(); } }
Produktion:
På samma sätt kan vi också skapa en nedräkningstimer med klassen Timer.