Heim  >  Artikel  >  Java  >  Verwendung von Java-Timern (Einführung in Timer)

Verwendung von Java-Timern (Einführung in Timer)

高洛峰
高洛峰Original
2016-12-16 13:21:021499Durchsuche

In der Entwicklung müssen wir häufig einige periodische Vorgänge ausführen, z. B. alle paar Minuten einen Vorgang ausführen. Zu diesem Zeitpunkt müssen wir einen Timer einrichten. Die bequemste und effizienteste Möglichkeit, ihn in Java zu implementieren, besteht darin, die Toolklasse java.util.Timer zu verwenden und dann die Aufgabe java.util.TimerTask zu planen.

1. Einführung

Timer ist ein Tool, mit dem Threads Aufgaben planen, die in Zukunft im Hintergrundthread ausgeführt werden sollen. Aufgaben können so geplant werden, dass sie einmal ausgeführt werden oder sich regelmäßig wiederholen. Es handelt sich tatsächlich um einen Thread, TimerTasks, der der geplanten Planung gehört.

TimerTask ist eine abstrakte Klasse und ihre Unterklassen werden von Timer so angeordnet, dass sie Aufgaben einmal oder wiederholt ausführen. Tatsächlich handelt es sich um eine Klasse mit einer Ausführungsmethode, und der Code, der regelmäßig ausgeführt werden muss, wird im Hauptteil der Ausführungsmethode platziert.

2. Aufrufmethode

Timer timer = Timer(true);

// Beachten Sie, dass es auch eine Timer-Klasse im javax.swing-Paket gibt Bei Verwendung in Importpaketen ist auf Namenskonflikte zu achten.

TimerTask task = new TimerTask() {

public void run() {

... //Platzieren Sie den Code, der sein muss wird jedes Mal ausgeführt, wenn man hineingeht.

}

};

//Im Folgenden sind einige häufig verwendete Methoden zum Planen von Aufgaben aufgeführt:

timer.schedule(task, time);

// time ist vom Typ Datum: wird einmal zur angegebenen Zeit ausgeführt.

timer.schedule(task, firstTime, period);

// firstTime ist der Datumstyp, der Zeitraum ist lang

// From firstTime moment Alle Millisekunden starten und ausführen.

timer.schedule(task, delay)

// Verzögerung ist vom Typ „Long“: wird einmal nach der Verzögerung in Millisekunden von jetzt an ausgeführt

timer.schedule(task, delay, period)

// Verzögerung ist lang, Zeitraum ist lang: Nachdem die Verzögerung Millisekunden ab jetzt verstrichen ist, wird es in jedem Zeitraum ausgeführt

/ / Millisekunden einmal.

Was ist der Unterschied zwischen Schedule() und ScheduleAtFixedRate()?

Zunächst einmal sind „Schedule(TimerTask-Aufgabe, Datum und Uhrzeit)“ und „Schedule(TimerTask-Aufgabe, lange Verzögerung)“ nur Einzelausführungsvorgänge, und es gibt keine Situation, in der die Aufgabe mehrmals aufgerufen wird, also gibt es keine Möglichkeit um die Methode „scheduleAtFixedRate“ aufzurufen. Sie implementieren alle die gleichen Funktionen. Was ist also der Unterschied?

(1) Die Methode Schedule() legt mehr Wert auf die Aufrechterhaltung der Stabilität des Intervalls: Sie stellt sicher, dass es einmal in jeder Periode aufgerufen werden kann.

(2) Die Methode „scheduleAtFixedRate()“ legt mehr Wert auf die Aufrechterhaltung der Stabilität der Ausführungsfrequenz: Sie stellt sicher, dass sich die Häufigkeit mehrerer Aufrufe der Periodenzeit annähert Beim nächsten Mal wird es so weit wie möglich kleiner als die Periode sein, damit die garantierte Häufigkeit nahe an der Periode liegt.

3. Beispieldemonstration

Benutzerdefinierte Aufgabe:

java.util.Timer importieren;

java.util.TimerTask importieren; >

public class TimerTaskTest erweitert TimerTask{

@Override

public void run() {

// TODO Auto- generierter Methoden-Stub

System.out.println("Aufgabe ausführen..."); util .Timer:

import java.util.Timer;

/**

* Planen Sie die angegebene Aufgabe so, dass sie wiederholte Ausführungen mit fester Rate ab dem angegebenen Zeitpunkt firstTime ausführt

* Einmal täglich um 12 Uhr mittags ausführen

*/

public class Test {

public static void main(String[] args){

Timer timer = new Timer();

Calendar Calendar = Calendar.getInstance();

Calendar . set(Calendar.HOUR_OF_DAY, 12);//Kontrollstunden

Calendar.set(Calendar.MINUTE, 0);//Kontrollminuten

Calendar.set(Calendar.SECOND, 0 ) ;//Sekunden kontrollieren

Date time = Calendar.getTime();//Die Ausführungszeit der Aufgabe ist 12:00:00

 

Timer timer = new Timer() ;

//Führen Sie den Vorgang jeden Tag um 12:00 Uhr aus und führen Sie ihn dann nach einer Verzögerung von einem Tag aus

timer.schedule(new TimerTaskTest(), time, 1000 * 60 * 60 * 24);

}

🎜>

Fazit: In diesem Artikel wird die mit Java gelieferte Timer-Tool-Klasse nur kurz vorgestellt Mängel, bitte darauf hinweisen. Interessierte können sich ein weiteres Timer-Open-Source-Projekt ansehen: QUARTZ. Teilen ist eine Art Glück, Beharrlichkeit ist eine Art Geist.

Weitere Artikel zur Verwendung von Java-Timern (Einführung in Timer) finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn