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 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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung