Heim >Java >javaLernprogramm >Java Multithreading – die Verwendung von Timer Timer
Wir sehen mehr Timing-Funktionen auf Mobiltelefonen, wie z. B. geplante Müllreinigung, Wecker usw. Die Timing-Funktion verwendet hauptsächlich das Timer-Objekt in Java und verwendet intern Multithreading-Technologie.
Die Die Zeitklasse ist hauptsächlich für die Ausführung der Funktion geplanter Aufgaben verantwortlich, d Kapselt den Aufgabeninhalt ist die TimerTask-Klasse. Diese Klasse ist eine abstrakte Klasse und die Vererbung erfordert die Implementierung einer Ausführungsmethode.
Durch Überprüfen der Dokumentation sehen wir, dass Timer die folgenden Konstruktoren hat:
Der Timer hat so viele Methoden:
Im Folgenden verwenden wir den Timer, um eine einfache Funktion auszuführen, nämlich „Sie“ auszudrucken sollte auf der Konsole aufstehen, nachdem das Projekt drei Sekunden lang ausgeführt wurde , aber obwohl die Aufgabe abgeschlossen wurde, wurde der Prozess nicht zerstört und war immer noch rot. Was ist der Grund dafür?
Das Erstellen eines Timers ist gleichbedeutend mit dem Starten eines neuen Threads Daemon-Thread, sodass er immer ausgeführt wird.
package com.wang.reflect; import java.util.Timer; import java.util.TimerTask; class MyTask extends TimerTask{ @Override public void run() { System.out.println("您该起床了!!!!"); } } public class TimerDemo { public static void main(String[] args) { //创建定时器对象 Timer t=new Timer(); //在3秒后执行MyTask类中的run方法 t.schedule(new MyTask(), 3000); } }In der Time-Klasse gibt es eine cancel()-Methode in der TimerTask-Klasse Die Funktion der TimerTask-Klasse besteht darin, sich selbst aus dem zu löschen Aufgabenwarteschlange (ein Timer-Objekt kann mehrere Timerask-Aufgaben ausführen) Timer Die Funktion der Klasse besteht darin, alle Aufgaben in der Aufgabenwarteschlange zu löschen Schreiben Sie unten ein Beispiel, um alle Dateien regelmäßig zu löschen ein Verzeichnis auf dem angegebenen Datenträger:
Beachten Sie, dass die von mir angegebene Datumsart sofort ausgeführt wird
package com.wang.reflect; import java.io.File; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Timer; import java.util.TimerTask; class MyTask extends TimerTask{ /** * 定时删除指定位置的文件,(这里以删除f盘下aa文件夹的所有文件为例) */ @Override public void run() { File file=new File("f://aa"); deleteFolder(file); } public void deleteFolder(File file){ File[] files=file.listFiles(); for(File f:files){ if(f.isDirectory()){ //使用递归 deleteFolder(f); }else{ f.delete(); } } file.delete(); } } public class TimerDemo { public static void main(String[] args) throws ParseException { //创建定时器对象 Timer t=new Timer(); String time="2016-04-04 11:26:40"; Date d=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time); t.schedule(new MyTask(), d); } }
Weitere Artikel zum Thema Java-Multithreading – Timer-Nutzung finden Sie auf der chinesischen PHP-Website!