Du liest:
Java Timer & TimerTask: So erstellst du geplante Aufgaben!

Java Timer & TimerTask: So erstellst du geplante Aufgaben!

05.07.2022
Die Java Timer & TimerTask-Klasse im Überblick!

Die Java Timer-Klasse ist Teil des Pakets Java.util und hilft bei der einmaligen oder regelmäßigen Ausführung eines Jobs oder einer Aufgabe in einem bestimmten Zeitintervall. Ihre eingebauten Methoden können zur Planung von Aufgaben für ein bestimmtes Datum verwendet werden, z. B. um Erinnerungen zu setzen oder jemandem zum Geburtstag zu gratulieren.

Wenn du eine geplante Aufgabe in einem Java-Programm erstellen willst, dann erweitere die abstrakte Klasse TimerTask. Die Klasse Timer verwendet dann den definierten Job oder Task für die Zeitplanung. Anders ausgedrückt: Java Timer ist ein Scheduler, und TimeTask ist die Aufgabe, die geplant werden muss.

In diesem Artikel werden wir die Java Timer-Klasse und seine Funktionalität besprechen.

So, lass und loslegen!

Hinweis: Bevor du dich mit der Implementierung der Methoden der Timer-Klasse beschäftigst, solltest du einen Blick auf die Konstruktoren der Java Timer-Klasse werfen.

Die Java Timer-Konstruktoren im Überblick

Du kannst jeden der unten angegebenen Java Konstruktoren verwenden, um ein Timer-Objekt innerhalb deiner Java-Klasse zu erstellen:

Java Timer KonstruktorBeschreibung
Timer()Timer() ist der Standardkonstruktor der Java Timer-Klasse.
Timer(boolean isDaemon)Der Konstruktor Timer(boolean isDaemon) wird verwendet, um ein Timer-Objekt mit einem zugehörigen Thread zu erstellen, der als Daemon ausgeführt wird.
Timer(String name)Der Konstruktor Timer(String name) wird verwendet, um ein Java-Timer-Objekt mit dem angegebenen Namen zu erstellen.
Timer(String name, boolean isDaemon)Timer(String name, boolean isDaemon) wird verwendet, um ein Java Timer-Objekt mit dem angegebenen name und dem zugehörigen Thread zu erstellen, das als Daemon ausgeführt werden kann.

Die integrierten Java Timer-Methoden

Hier haben wir einige der am häufigsten verwendeten Java Methoden der Java Timer-Klasse aufgelistet:

Java Timer MethodeBeschreibung
void schedule(TimerTask task, Date time)Die void schedule(TimerTask task, Date time) Java Timer-Methode wird verwendet, um eine Timer-Aufgabe entsprechend der angegebenen Zeit zu planen.
void schedule(TimerTask task,long delay)Diese Java Timer-Methode wird für die Planung einer Timer-Aufgabe entsprechend der hinzugefügten Verzögerung verwendet.
void scheduleAtFixedRate(TimerTask task, Date firsttime, long period)Diese Methode wird verwendet, um eine Timer-Aufgabe mit einer festen Ausführungsrate mit dem angegebenen Datum und Zeitraum zu planen.
void cancel()Die Java Timer-Methode void cancel() wird verwendet, um den Timer zu beenden und alle geplanten Timer-Aufgaben außer der aktiven abzubrechen.
int purge()Die Java Timer-Methode int purge() entfernt die abgebrochenen Aufgaben aus der Warteschlange und gibt die Anzahl der entfernten Aufgaben aus.

Schauen wir uns nun einige Java Timer-Beispiele an.

Wie erstellt man eine Java Timer-Aufgabe mit der geplanten Zeit?

Im folgenden Beispiel planen wir eine submitAssignment-Aufgabe, die die Nachricht “Vergiss nicht deine Hausaufgabe abzugeben!” anzeigt, wenn das Datum 2. November 2022 um 00:00 Mitternacht ist.

Zu diesem Zweck importieren wir zunächst die Klassen Calendar, Timer und TimerTask aus den Paketen Java.util:

import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

Mehr über das Schlüsselwort Java import erfahren. Als Nächstes erstellen wir eine Instanz der Klasse Timer mit dem Namen time, die dabei hilft, die vergehende Zeit zu verfolgen, und hausaufgabenAbgeben ist die Aufgabe, die von der TimeTask ausgeführt werden soll:

class MeinTimerProgramm {
    public static void main(String args[]) {
        Timer time = new Timer();
        TimerTask hausaufgabenAbgeben = new TimerTask() {
            @Override
            public void run() {
                System.out.println("Vergiss nicht deine Hausaufgabe abzugeben!");
            }
        };
        Calendar date1 = Calendar.getInstance();
        date1.set(2022, Calendar.NOVEMBER, 2, 0, 0, 0);
        time.schedule(hausaufgabenAbgeben, date1.getTime());
    }
}

Wenn die angegebene Zeit erreicht ist, wird die Java Timer-Methode schedule() die Aufgabe hausaufgabenAbgeben mit dem Timer verknüpfen. Daraufhin wird die Methode run() der TimeTask submitAssignment ausgeführt und die hinzugefügte Erinnerung im Konsolenfenster ausgedruckt:

Ausgabe auf der Konsole:

Wie erstellt man eine Java Timer Task mit festgelegter Zeit und Periode?

Anstelle der einfachen schedule()-Methode der Java Timer-Klasse werden wir nun die ScheduleAtFixedRate(submitAssignment, date.getTime(), 1000)-Methode verwenden, um die Aufgabe hausaufgabenAbgeben entsprechend der angegebenen Zeit mit einer Zählperiode von 1000 Sekunden (1 Sekunde) zu planen.

Wir fügen auch einen Zähler x in die run()-Methode der TimerTask-Instanz submitAssignment ein, der angibt, dass die definierte Aufgabe nach zehn Sekunden ausgeführt wird:

import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

class Test {
    public static void main(String args[]) {
        Timer time = new Timer();
        TimerTask hausaufgabenAbgeben = new TimerTask() {
            int x = 10;
            @Override
            public void run() {
                if (x > 0) {
                    System.out.println(x);
                    x--;
                } else {
                    System.out.println("Vergiss nicht deine Hausaufgabe abzugeben!");
                    time.cancel();
                }
            }
        };
        Calendar date = Calendar.getInstance();
        date.set(2022, Calendar.NOVEMBER, 02, 23, 59, 50);
        time.scheduleAtFixedRate(hausaufgabenAbgeben, date.getTime(), 1000);
    }
}

Nach der hinzugefügten Logik wird der Zähler am 2. November, um 23:59 Uhr und in der 50. Sekunde starten und die hinzugefügte Erinnerung nach zehn Sekunden anzeigen. Wir haben zudem die Java Override Annotation verwendet!

Ausgabe auf der Konsole:

Die Java TimerTask Klasse im Überblick

Das waren alle wesentlichen Informationen zu den Java Timer Aufgaben und der Zeitplanung. Du kannst bei Bedarf gerne weiter recherchieren.

Zusammenfassung: Java Timer

Die Objekte der Klasse Java Timer werden verwendet, um verschiedene Aufgaben zu planen, die nach einem bestimmten Zeitraum oder einem bestimmten Datum und einer bestimmten Uhrzeit ausgeführt werden können. Außerdem kannst du die Aufgabe für eine einmalige oder wiederholte Ausführung planen. Die Java Timer-Klasse nutzt die Hintergrund-Threads für die Planung von Aufgaben. In diesem Artikel wurden die Java Timer-Klasse, ihre Konstruktoren, Methoden und ihre Implementierung besprochen.



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren

Arrow-up