Java-Timer

Rashmi Patidar 12 Oktober 2023
  1. Planen Sie eine einmalige Aufgabe mit Timer in Java
  2. Planen Sie einen sich wiederholenden Timer in Java
Java-Timer

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 Patidar avatar Rashmi Patidar avatar

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

Verwandter Artikel - Java Timer