Heim >Java >javaLernprogramm >Die Verwendung von Timern in JAVA

Die Verwendung von Timern in JAVA

高洛峰
高洛峰Original
2016-12-16 11:58:381223Durchsuche

Die beiden Klassen, die zur Implementierung der Timer-Funktion in JAVA verwendet werden, sind Timer und TimerTask.
Die Timer-Klasse ist eine Klasse, die zum Ausführen von Aufgaben verwendet wird. Sie akzeptiert eine TimerTask als Parameter.
Timer verfügt über zwei Modi zum Ausführen von Aufgaben. Am häufigsten wird der Zeitplan verwendet, der Aufgaben auf zwei Arten ausführen kann: 1: zu einem bestimmten Zeitpunkt (Daten), 2: nach einer bestimmten festen Zeit (Int-Verzögerung). Der Artikel enthält zwei Beispiele, eines ist ein einfaches
und das andere verwendet eine interne Klasse
1. Einfaches Beispiel

Schreiben Sie zuerst eine Klasse

öffentliche Klasse TimeTest {
public static void main(String[] args) {

 Timer timer = new Timer();
 timer.schedule(new MyTask(),1000,2000);
}

Dann schreibe eine Klasse
public class MyTask erweitert TimerTask{

@Override
public void run() {
System.out.println("Start running" 🎜> }
}

Auf diese Weise kann ein einfacher Timer vervollständigt werden, aber es gibt eine andere Möglichkeit, diese beiden Klassen in eine Klasse zu schreiben, nämlich eine interne Klasse

2

public class SerchRun {

protected static void startRun(){
Timer timer = new Timer();
TimerTask task =new TimerTask() {
                                                                                                         using   using mit   mit   mit               mit mit                                                 scheduleAtFixedRate (task, new Date(),2000); /Starten Sie zur aktuellen Zeit und starten Sie alle 2 Sekunden erneut
// timer.scheduleAtFixedRate(task, 1000,2000); // Starten Sie jedes Mal nach 1 Sekunde 2 Neustart in Sekunden
}

public static void main(String[] args) {
SerchRun.startRun();
}
}



Der Unterschied zwischen Schedule und ScheduleAtFixedRate besteht darin, dass, wenn die Wenn die angegebene Startausführungszeit vor der aktuellen Systemlaufzeit liegt, führt ScheduleAtFixedRate auch die verstrichene Zeit als Zeitraum aus, während Schedule die verstrichene Zeit nicht zählt.

Zum Beispiel:

SimpleDateFormat fTime = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

Date d1 = fTime.parse("2005/12/ 30 14:10:00");

t.scheduleAtFixedRate(new TimerTask(){

public void run()

{
System.out.println("Das ist Ihre Aufgabe do6 ");
}
},d1,3*60*1000);

Das Intervall beträgt 3 Minuten und die angegebene Startzeit ist 30.12.2005 14:10:00 . Wenn Sie dieses Programm um 14:17:00 ausführen, wird es sofort dreimal gedruckt

dies ist die Aufgabe, die Sie erledigen6 //14:10
dies ist die Aufgabe, die Sie erledigen6 //14: 13

Das ist die Aufgabe, die Sie erledigen6 //14:16

Und beachten Sie, dass die nächste Ausführung um 14:19 statt um 14:20 erfolgt. Das heißt, die Zeitmessung beginnt mit der angegebenen Startzeit und nicht mit der Ausführungszeit.


Aber wenn die oben beschriebene Zeitplanmethode verwendet wird, beträgt das Intervall 3 Minuten und die angegebene Startzeit ist 30.12.2005 14:10:00, wenn das Programm um 14:17:00 ausgeführt wird , wird das Programm sofort einmal ausgeführt. Und die nächste Ausführungszeit ist 14:20, nicht der Zeitraum ab 14:10 (14:19).


Weitere Artikel zur Verwendung von Timern in JAVA 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