Java -Thread -Timer -Nutzung

Java -Thread -Timer -Nutzung
In Java ist ein Timer eine Klasse, aus der Timerobjekte instanziiert werden können. Die Timer plant Aufgabe für die Ausführung in naher Zukunft. Eine Aufgabe ist wie eine Methode (Funktion). Java hat die Klasse TimerTask, aus der Taskobjekte instanziiert werden können. Unterschiedliche Aufgaben sollen zu unterschiedlichen Zeiten arbeiten (ausführen). In diesem Tutorial wird das Timer -Objekt in Java instanziiert und verwendet.

Artikelinhalt

  • TIMERTask
  • Timer
  • Einmal jede Aufgabe ausführen
  • Mehr als einmal ausführen
  • Abschluss

TIMERTask

Das TimerTask -Objekt kann als Funktionsobjekt gesehen werden. Die TimerTask -Klasse muss importiert werden (die Java.Util.* Paket). Die Syntax für die Instanziierung lautet:

geschützter Timertask ()

Das reservierte Wort „geschützt“ bedeutet, dass es nur durch Subklassen definiert (implementiert) werden kann (erweitert). Das folgende Codesegment definiert eine TimerTask -Klasse:

Klasse TT erweitert Timertask
String str;
Tt (String st)
str = st; st;

public void run ()
System.aus.println (str);

Die TimerTask -Klasse ist eine abstrakte Klasse, da sie die abstrakte Methode Run () hat, deren Syntax lautet:

öffentliche abstrakte void run ()

Die Methode run () muss in der TT -Klasse implementiert werden. Hier ist die TT -Klasse die nutzbare Timertask -Klasse. Die Run () -Methode ist die Hauptmethode der Timertask -Klasse. Diese Run () -Methode ist die effektive Aufgabe. In diesem Fall hat die TT Run () -Methode -Implementierung nur eine Erklärung. Wenn die TT -Klasse als Objektargument verwendet wird, wird in der Timer -Objektmethode die Run () -Methode ausgeführt. Die Instanziierung dieser TT -Klasse erfolgt nach dem Ausdruck:

neuer TT (Strobj);

Also in der Main () -Methode im Codesegment,

Tt t1 = new tt ("Aufgabe 1.");
t1.laufen();

wird drucken,

Aufgabe 1.

Im Folgenden werden drei Objekte wie T1 für drei verschiedene Aufgaben für das Timer -Objekt erstellt.

Timer

Die Timer -Klasse hat vier überlastete Konstruktoren, aber hier wird nur einer berücksichtigt. Die Timerklasse ist in der Java.Util.* Paket. Die Syntax der Timer -Klassenkonstruktion lautet:

öffentlicher Timer ()

Dies bedeutet, dass die Timer -Klasse mit einer Aussage wie folgt instanziiert wird:

Timer t = neuer Timer ();

Methoden der Timerklasse

Es gibt 8 Methoden der Timerklasse. In diesem Artikel werden nur vier berücksichtigt. Drei werden in diesem Abschnitt berücksichtigt:

Zeitplan (TimerTask -Aufgabe, lange Verzögerung)

Diese Methode plant ein TimerTask -Objekt, das nach einer Reihe von Millisekunden ausgeführt werden soll (Verzögerung). Die vollständige Syntax ist:

Öffentlicher Leerlaufplan (TimerTask -Aufgabe, lange Verzögerung)

stornieren()

Diese Methode des Timers beendet den Timer und verworfen derzeit alle geplanten Aufgaben. Die vollständige Syntax ist:

öffentliche void cancel ()
säubern()

Die vollständige Syntax ist:

public int purge ()

Diese Methode des Timers entfernt alle stornierten Aufgaben aus der Aufgabenwarteschlange des Timers, die den Speicher befreien.

Einmal jede Aufgabe ausführen

Ein Timer -Objekt kann mehr als ein Timertask -Objekt ausführen (ausführen). Die Run () -Methode des Timertask -Objekts als Argument in der Zeitplanmethode des Timer -Objekts läuft nach einer verzögerten Zeit (Millisekunden). 1000 ms = 1s. Die folgende TT -Klasse zeigt einen guten Code zum Instanziieren von Timertask -Objekten:

Java importieren.Util.*;
Klasse TT erweitert Timertask
String str; int num; Timer Tim;
Tt (String st, int no, timer timer)
str = st; st; num = nein; Tim = Timer;

public void run ()
System.aus.println (str);
if (num == 3)
Tim.stornieren(); Tim.säubern();

Die von der TT -Klasse instanziierten Objekte haben zugeordnete Zahlen. In der Main () -Methode für diese Klasse gibt es drei TT -Objekte. Der Konstruktor für jedes dieser Objekte ist der Konstruktor für diese Klasse. Der erste Parameter für die Konstruktormethode ist eine Zeichenfolge. Dies ist die Zeichenfolge, die die Run () -Methode des Objekts druckt. Der zweite Parameter ist die Zahl, die dem Objekt zugeordnet ist. Die drei instanziierten Objekte aus dieser Klasse haben Zahlen von 1 bis 3 zugeordnet. Der nächste Parameter ist das Timer -Objekt. Das Timer -Objekt wird in der Main () -Methode instanziiert. Das gleiche Timer -Objekt führt jede dieser drei Objekte nach einer geplanten Dauer aus. Jedes Objekt hat eine andere Zeichenfolge (erstes Argument).

Es ist das letzte Objekt, das ausgeführt wird, das den Timer stoppt. Die Timer -Abbrechenmethode wird dafür verwendet. Das gleiche letzte Objekt wird das Timer -Objekt gespült. Das letzte TT -Objekt ist der Zahl 3 zugeordnet, 3. Aufgrund all dieser dieser Code befindet sich der folgende Code in der Run () -Methode der TT -Klasse:

if (num == 3)
Tim.stornieren(); Tim.säubern();
Die Hauptklasse mit der Hauptmethode lautet:
öffentliche Klasse Theclass
public static void main (String [] args)
Timer t = neuer Timer ();
Tt t1 = new tt ("Aufgabe 1.", 1, t);
Tt t2 = new tt ("Aufgabe 2.", 2, t);
Tt t3 = new tt ("Aufgabe 3.", 3, t);
T.Zeitplan (T1, 1000);
T.Zeitplan (T2, 2000);
T.Zeitplan (T3, 3000);

Nach dem Timer -Objekt wurde T aus der Timer -Klasse so instanziiert. Beachten Sie die verschiedenen Argumente der Konstrukteure dieser drei Objekte. Das erste Argument ist die angewiesene Zeichenfolge, die sein Objekt charakterisiert. Das nächste Argument ist die zugehörige Zahl. Das letzte Argument ist das Timer -Objekt, das für alle drei Objekte gleich ist.

Danach im Code läuft das gleiche Timer -Objekt T1 nach 1 Sekunde (1000 Millisekunden). Es läuft T2 nach 2s. Es läuft T3 nach 3s. Der Objektname als erstes Argument der Timer -Objektplan -Zeitplanmethode reicht in dieser Situation aus, um die Run () -Methode jedes Timer -Objekts auszuführen. Nach einer Sekunde ist die Ausgabe:

Aufgabe 1.

Und nach 1 Sekunde wieder ist es,

Aufgabe 2.

Und in der vierten Sekunde ist es:

Aufgabe 3.

Dann wegen der If-Kondition und dessen „Tim.stornieren();" Für das dritte Objekt endet das Timer -Objekt und das Programm endet.

Mehr als einmal ausführen

Eine Aufgabe ist ein TimerTask -Objekt (Timertask. Jedes TT. Die Timer -Methode dafür ist:

Öffentlicher Leerlaufplan (TimerTask -Aufgabe, lange Verzögerung, lange Zeitraum)

Jede Aufgabe wird also nach langer Verzögerung zum ersten Mal ausgeführt. Nach einem langen Zeitraum (dritter Parameter) wird es erneut ausführen. Nach der gleichen langen Zeit (Dauer) wird es wieder ausgeführt und wiederholt, bis eine Bedingung für das Timer-Objekt erfüllt ist. Im folgenden Code werden die ersten und zweiten Aufgaben (TimerTask -Objekte) jeweils zweimal wiederholt (drei Vorkommen). Die dritte Aufgabe wird nach ihrer normalen Verzögerung einmal ausgeführt. Es hat den Timer -Zustand, der den Timer stoppt (und keine Wiederholung).

öffentliche Klasse Theclass
public static void main (String [] args)
Timer t = neuer Timer ();
Tt t1 = new tt ("Aufgabe 1.", 1, t);
Tt t2 = new tt ("Aufgabe 2.", 2, t);
Tt t3 = new tt ("Aufgabe 3.", 3, t);
T.Zeitplan (T1, 1000, 2000);
T.Zeitplan (T2, 2000, 2000);
T.Zeitplan (T3, 6000);

Nach einer Sekunde ist die Ausgabe,

Aufgabe 1.

und nach der Verzögerung von zwei Sekunden von Anfang an ist die Ausgabe von Anfang an,

Aufgabe 2.

Nach einem Intervall von 2 Sekunden ab dem Zeitpunkt, an dem die erste Aufgabe ausgeführt wurde, ist die Ausgabe aufgrund der ersten Aufgabe,

Aufgabe 1.

und nach einem Intervall von 2 Sekunden nach der Ausführung der zweiten Aufgabe ist die Ausgabe aufgrund der zweiten Aufgabe,

Aufgabe 2.

Nach einem Intervall von 2 Sekunden ab dem Zeitpunkt, an dem die erste Aufgabe zuletzt ausgeführt wurde, ist die Ausgabe aufgrund der ersten Aufgabe,

Aufgabe 1.

und nach einem Intervall von 2 Sekunden ab dem Zeitpunkt, an dem die zweite Aufgabe zuletzt ausgeführt wurde, ist die Ausgabe aufgrund der zweiten Aufgabe,

Aufgabe 2.

Nach einer normalen Verzögerung von 6 Sekunden ist die Ausgabe aufgrund der dritten Aufgabe, die den Stoppzustand aufweist

Aufgabe 3.

Abschluss

Die Timer -Klasse arbeitet mit der TimerTask -Klasse zusammen. Die TimerTask -Klasse ist eine abstrakte Klasse und muss daher vererbt werden. und seine einzige abstrakte Methode, Run () muss implementiert werden. Aus dieser Klasse (TT oben) kann eine beliebige Anzahl von Aufgabenobjekten instanziiert werden. Was die Timer -Klasse betrifft, sollte ein Objekt daraus instanziiert werden. Das One -Timer -Objekt kann dann verwendet werden, um die verschiedenen Timertask -Objekte zu unterschiedlichen Zeiten auszuführen. Eines der TimerTask -Objekte sollte das Timer -Objekt stoppen.

Chrys