Java-Timer
-
Planen Sie eine einmalige Aufgabe mit
Timer
in Java - Planen Sie einen sich wiederholenden Timer in Java
Timer
ist ein in der Programmiersprache Java verfügbarer Dienst, der es Benutzern ermöglicht, ein zukünftiges Ereignis zu planen. Diese zukünftigen Ereignisse können einmalig oder in regelmäßigen Zeitabständen wiederholt werden. Es kann Auslöser geben, die wir verwenden, um zukünftige Ereignisse zu initiieren.
Planen Sie eine einmalige Aufgabe mit Timer
in Java
import java.util.Timer;
import java.util.TimerTask;
public class StopWatch {
Timer timer;
public StopWatch(int seconds) {
timer = new Timer();
timer.schedule(new StopTask(), seconds * 1000);
}
public static void main(String[] args) {
new StopWatch(10);
System.out.println("StopWatch Started.");
}
class StopTask extends TimerTask {
public void run() {
System.out.println("Time Up!");
timer.cancel();
}
}
}
Im obigen Codeblock haben wir eine öffentliche Klasse namens StopWatch
erstellt. Es hat seinen öffentlichen Konstruktor, der in Sekundenschnelle dauert. Im Konstruktorblock wird eine Timer-Instanz erstellt. Über die Timer-Instanz wird die Methode schedule
aufgerufen. Diese Methodenaufgabe besteht darin, das bestimmte Ereignis zu der angegebenen Zeit zu planen. Es braucht zwei Parameter TimerTask
-Instanz und die Verzögerung. Wir definieren die Verzögerung in Millisekunden. Die Methode wirft IllegalArgumentException
, wenn die angegebene definierte Verzögerung ungültig ist, IllegalArgumentException
, wenn die bereitgestellte Aufgabe bereits geplant oder abgebrochen wurde. Es wirft auch NullPointerException
, wenn die bereitgestellte Aufgabeninstanz null ist.
Direkt unter dem Konstruktor befindet sich die Methode main
, von der aus die eigentliche Ausführung beginnt. Es erzeugt eine neue Instanz der Klasse StopWatch
mit definierter Verzögerung, die intern die Anweisung im Konstruktorblock ausführt.
Unterhalb der Methode main
wird eine innere Klasse namens StopTask
definiert, die eine abstrakte Klasse TimerTask
erweitert. TimerTask
ist eine abstrakte Klasse mit einer abstrakten Methode namens run
. Die Methode muss in der Klasse StopTask
überschrieben werden, und wenn sie nicht überschrieben wird, sollte die Klasse selbst abstrakt werden. Jetzt haben wir in der Methode run
den Timer mit der Methode cancel
gestoppt. Die Methode verwirft alle derzeit geplanten Tasks und beendet die Timer-Task.
Unten ist die Ausgabe des obigen Codeblocks. Die zweite Zeile wird gedruckt, wenn die Verzögerung in der Zeitplanmethode auftritt.
StopWatch Started.
Time Up!
Planen Sie einen sich wiederholenden Timer in Java
Wir werden den obigen Code ändern, um einen sich wiederholenden Timer zu erstellen. Wiederholter Timer wird in regelmäßigen Zeitabständen wiederholt ausgeführt.
Im folgenden Codeblock haben wir eine Timer
-Instanz erstellt. Die Verwendung der Instanzvariablen besteht darin, eine Methode scheduleAtFixedRate
aufzurufen, die die zukünftigen Ereignisse plant. Das Verfahren hat verschiedene Implementierungen. Der von uns verwendete nimmt drei Parameter an. Erstens enthält eine TimerTask
-Instanz Anweisungen zu Aktionen, die wir in Zukunft ausführen möchten. Als nächstes definiert die Variable delay
die Zeit, die die Aufgabe oder das Ereignis zum Ausführen benötigt. Zuletzt ist die period
, die die Zeit zwischen aufeinanderfolgenden Aufrufen des Ereignisses definiert. Diese Methode löst Ausnahmen aus, die die Ausnahmen NullPointerException IllegalArgument
und IllegalState
enthalten.
import java.util.Timer;
import java.util.TimerTask;
public class RepeatedTimer {
public static void main(String[] args) {
Timer timer = new Timer();
System.out.println("Stop Watch Started.");
timer.scheduleAtFixedRate(new RepeatedTask(), 500, 1000);
}
static class RepeatedTask extends TimerTask {
public void run() {
System.out.println("Running!");
}
}
}
Unten ist das nie endende Ergebnis der zukünftigen geplanten Veranstaltung.
Running!
Running!
Running!
Running!
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn