Java-Timer-Klasse
In Java, Timer ist eine Klasse, die zu der gehört java.util Paket. Es erweitert die Objekt Klasse und implementiert die Serialisierbar Schnittstelle. Die Klasse stellt die Konstruktoren und Methoden bereit, die zum Ausführen zeitbezogener Aktivitäten verwendet werden können. Mit der Timer-Klasse können wir die Aufgabe planen, die wir zu einem bestimmten Zeitpunkt ausführen möchten.
Beachten Sie, dass die Timer-Klasse eine Thread-sichere Klasse ist. Dies bedeutet, dass nur ein Thread die Timer-Klassenmethode ausführen kann. Ein weiterer zu beachtender Punkt ist, dass die Klasse eine binäre Heap-Datenstruktur zum Speichern ihrer Aufgabe verwendet.
Timer-Java-Programme
Planen einer Aufgabe, die vom Timer-Thread ausgeführt werden soll
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); } }
Ausgabe:
Typoskript-Pfeilfunktion
5 4 3 2 1 Wish You Very Happy Birthday!!
Sehen wir uns ein anderes Java-Programm an, in dem wir nach einem bestimmten Zeitintervall eine Aufgabe ausgeführt haben.
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); } }
Ausgabe:
You have a notification!
Das Programm benötigt 10 Sekunden, um die Meldung auf der Konsole anzuzeigen.
Starten und stoppen Sie einen 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(); } }
Ausgabe:
Ebenso können wir mit der Timer-Klasse auch einen Countdown-Timer erstellen.