


Timer und TimerTask Beispiele für die Verwendung von Timern und geplanten Aufgaben in Java
Diese beiden Klassen sind sehr praktisch zu verwenden und können die meisten unserer Anforderungen an Timer erfüllen.
Die Timer-Klasse ist eine Klasse, die zum Ausführen von Aufgaben verwendet wird. Sie akzeptiert eine TimerTask als Parameter
Der Timer verfügt über zwei Modi zum Ausführen von Aufgaben. Der am häufigsten verwendete Modus ist der Zeitplan, der Aufgaben auf zwei Arten ausführen kann: 1: zu einem bestimmten Zeitpunkt (Daten), 2: nach einer festen Zeit (int-Verzögerung). Häufigkeit der Aufgabenausführung
TimerTest.Java
package com.cn; import java.io.IOException; import java.util.Timer; public class TimerTest{ public static void main(String[] args){ Timer timer = new Timer(); timer.schedule(new MyTask(), 1000, 2000);//在1秒后执行此任务,每次间隔2秒执行一次,如果传递一个Data参数,就可以在某个固定的时间执行这个任务. while(true){//这个是用来停止此任务的,否则就一直循环执行此任务 try{ int in = System.in.read(); if(in == 's'){ timer.cancel();//使用这个方法退出任务 break; } } catch (IOException e){ // TODO Auto-generated catch block e.printStackTrace(); } } } static class MyTask extends java.util.TimerTask{ public void run(){ System.out.println("________"); } } }
Diese Art von Laufzeit:
Drucken Sie „—“ auf der Konsole 1 Sekunde nach dem Start des Programms. —“
Führen Sie nach einem Intervall von zwei Sekunden die run()-Methode von MyTask aus und geben Sie „————“ aus
Dies führt zu einer Schleife
Bei Eingabe auf dem Konsolencharakter, der Timer bricht seine Arbeit ab
springt aus der gesamten Schleife
Das Programm endet!
TimerTest2.java:
package com.cn; import java.io.IOException; import java.util.Date; import java.util.Timer; public class TimerTest2{ public static void main(String[] args){ Timer timer = new Timer(); MyTask myTask1 = new MyTask(); MyTask myTask2 = new MyTask(); myTask2.setInfo("myTask-info-2"); timer.schedule(myTask1, 1000, 2000); //任务1 一秒钟后执行,每两秒执行一次。 timer.scheduleAtFixedRate(myTask2, 2000, 3000); //任务2 2秒后开始进行重复的固定速率执行(3秒钟重复一次) while (true){ try{ //用来接收键盘输入的字符串 byte[] info = new byte[1024]; int len = System.in.read(info); String strInfo = new String(info, 0, len, "GBK");//从控制台读出信息 if (strInfo.charAt(strInfo.length() - 1) == ' '){ strInfo = strInfo.substring(0, strInfo.length() - 2); } if (strInfo.startsWith("Cancel-1")){ myTask1.cancel();//退出任务1 // 其实应该在这里判断myTask2是否也退出了,是的话就应该break.但是因为无法在包外得到 // myTask2的状态,所以,这里不能做出是否退出循环的判断. } else if (strInfo.startsWith("Cancel-2")){ myTask2.cancel(); //退出任务2 } else if (strInfo.startsWith("Cancel-All")){ timer.cancel();//退出Timer break; } else{ // 只对myTask1作出判断,偷个懒^_^ myTask1.setInfo(strInfo); } } catch (IOException e){ // TODO Auto-generated catch block e.printStackTrace(); } } } static class MyTask extends java.util.TimerTask{ String info = "INFO"; @Override public void run(){ // TODO Auto-generated method stub System.out.println(new Date() + " " + info); } public String getInfo(){ return info; } public void setInfo(String info){ this.info = info; } } }
Diese Klasse erstellt zwei geplante Aufgaben mytask1 und mytask2
Die Aufgabe mytask1 wird genauso verwendet wie das Beispiel in der TimerTest-Klasse oben. Das heißt, die angegebene Aufgabe soll mit einer festen Verzögerung wiederholt ausgeführt werden, beginnend mit der angegebenen Verzögerung.
Die mytask2-Aufgabe unterscheidet sich von der oben genannten Verwendung. timer.scheduleAtFixedRate wird mit der ScheduleAtFixedRate()-Methode des Timers ausgeführt. Die
scheduleAtFixedRate()-Methode ist in API 1.6.0 wie folgt definiert:
Planen Sie die angegebene Aufgabe so, dass sie zum angegebenen Zeitpunkt wiederholt mit fester Rate ausgeführt wird. Nachfolgende Ausführungen erfolgen in ungefähr festgelegten Abständen, getrennt durch den angegebenen Zeitraum.
Ungefähr feste Intervalle bedeuten, dass bei der Ausführung mit fester Rate jede Ausführung relativ zur geplanten anfänglichen Ausführungszeit geplant wird. Wenn sich eine Ausführung aus irgendeinem Grund verzögert (z. B. durch Speicherbereinigung oder andere Hintergrundaktivitäten), werden zwei oder mehr Ausführungen schnell hintereinander ausgeführt, sodass nachfolgende Ausführungen aufholen können.
Andere häufig verwendete Methoden der Timer-Klasse:
cancel()
Beenden Sie diesen Timer und verwerfen Sie ihn alle aktuell geplanten Aufgaben.
purge()
Entfernt alle abgebrochenen Aufgaben aus der Aufgabenwarteschlange dieses Timers.
schedule(TimerTask task, Date time)
Planen Sie die Ausführung der angegebenen Aufgabe zum angegebenen Zeitpunkt.
Andere häufig verwendete Methoden der TimerTask-Klasse:
cancel()
Diese Timer-Aufgabe abbrechen.
run()
Der Vorgang, der von dieser Timer-Aufgabe ausgeführt werden soll.
scheduledExecutionTime()
Gibt die geplante Ausführungszeit der letzten tatsächlichen Ausführung dieser Aufgabe zurück.
Weitere Beispiele für die Verwendung von Timern und geplanten Aufgaben in Java durch Timer und TimerTask 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

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Dieser Artikel analysiert 2025 die vier besten JavaScript -Frameworks (React, Angular, Vue, Svelte) und verglichen ihre Leistung, Skalierbarkeit und Zukunftsaussichten. Während alle aufgrund starker Gemeinschaften und Ökosysteme dominant bleiben, sind ihr relatives Popul

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Node.js 20 verbessert die Leistung durch V8 -Motorverbesserungen erheblich, insbesondere durch schnellere Müllsammlung und E/A. Zu den neuen Funktionen gehören eine bessere Support von WebAssembly und raffinierte Debugging -Tools, die Produktivität der Entwickler und die Anwendungsgeschwindigkeit.

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

Dieser Artikel befasst sich mit der Verwundbarkeit von CVE-2022-1471 in Snakeyaml, einem kritischen Fehler, der die Ausführung von Remote-Code ermöglicht. Es wird beschrieben

Iceberg, ein offenes Tabellenformat für große analytische Datensätze, verbessert die Leistung und Skalierbarkeit von Data Lake. Es befasst sich mit Einschränkungen von Parquet/ORC durch internes Metadatenmanagement und ermöglicht eine effiziente Schemaentwicklung, Zeitreisen, gleichzeitiger W

In diesem Artikel werden Methoden zum Austausch von Daten zwischen Gurkenschritten und dem Vergleich des Szenario -Kontextes, globalen Variablen, Argumentenübergabe und Datenstrukturen untersucht. Es betont Best Practices für Wartbarkeit, einschließlich präziser Kontextgebrauch, beschreibend

In diesem Artikel wird die Integration der funktionalen Programmierung in Java unter Verwendung von Lambda -Ausdrücken, Streams -API, Methodenreferenzen und optional untersucht. Es zeigt Vorteile wie eine verbesserte Lesbarkeit der Code und die Wartbarkeit durch SUKTIVE UND VERUSNAHMETALITÄT
