Heim  >  Artikel  >  Java  >  Verwendung des JDK-Timer-Timers

Verwendung des JDK-Timer-Timers

PHP中文网
PHP中文网Original
2017-06-28 10:34:111576Durchsuche

Implementieren und Planen einer Aufgabe, die von einem Timer ausgeführt werden soll
1) Implementieren Sie eine benutzerdefinierte Unterklasse von TimerTask. Die run-Methode enthält den Code, der die Aufgabe ausführt.
    class RemindTask erweitert TimerTask {
        public void run() {
            System.out.println("Time up!");
            System.exit (0) ))
    RemindTask task = new RemindTask();
4) Planen Sie die Ausführung der Timer-Aufgabe.
  (1) Führen Sie die Aufgabe nach einer speziellen Verzögerung in Millisekunden aus.
    timer.schedule(task,5* 1000);
  (2) Geben Sie den Zeitpunkt an, zu dem die Aufgabe ausgeführt werden soll.
    //Führen Sie die Aufgabe um 23:01 Uhr aus
    Kalender Calendar = Calendar.getInstance();
    Calendar.set( Calendar.HOUR_OF_DAY,23);
    Calendar.set(Calendar.MINUTE,1);
    Calendar.set(Calendar.SECOND,0);
    Date time = Calendar.getTime();

    timer.schedule(task,time);

Timer-Threads stoppen
  Standardmäßig läuft ein Programm so lange weiter, wie seine Timer-Threads ausgeführt werden. Es gibt vier Möglichkeiten, einen Timer-Thread zu beenden
  1) Rufen Sie „cancel“ für den Timer auf.(timer.cancel())
  2) Machen Sie den Thread des Timers zu einem Daemon(后台), indem Sie den Timer wie folgt erstellen: new Timer (wahr). Wenn die einzigen verbleibenden Threads im Programm Daemon-Threads sind, wird das Programm beendet.
  3) Nachdem alle geplanten Timer-Aufgaben ausgeführt wurden, entfernen Sie alle Verweise auf das Timer-Objekt. Der Timer-Thread wird beendet.
  4) Rufen Sie die System.exit-Methode auf, die das gesamte Programm und alle seine Threads beendet.

Eine Aufgabe wiederholt ausführen
Es gibt vier Timer-Methoden, um eine Aufgabe wiederholt auszuführen
  * Zeitplan (TimerTask-Aufgabe, lange Verzögerung, langer Zeitraum)
    Plant die angegebene Aufgabe für wiederholte feste Verzögerungen Ausführung, beginnend nach der angegebenen Verzögerung. Nachfolgende Ausführungen finden in annähernd regelmäßigen Abständen statt, getrennt durch den angegebenen Zeitraum.
   行
    timer.schedule(new RemindTask (), 3*1000,1*1000)
remindtask 任务 将 会 在 3 秒 后 执行 , 以后 将 会 以 1 秒 的 重复 执行 执行

*Zeitplan (TimerTask Zeitraum)
    执行重复的任务,第一次在特定的时间执行,往后的以特定的时间间隔执行

  * ZeitplanAtFi xedRate(TimerTask-Aufgabe, lange Verzögerung, langer Zeitraum)
    Zeitpläne die angegebene Aufgabe für die wiederholte Ausführung mit fester Rate, beginnend nach der angegebenen Verzögerung. Nachfolgende Ausführungen finden in annähernd regelmäßigen Abständen statt, getrennt durch den angegebenen Zeitraum.
   行发生在特定的时间间隔之后
temer.scheduleAtFixedRate(new RemindTask(),3*1000,1*1000)
  * schemeAtFixedRate(TimerTask task, Date firstTime, long period)
   间执行,往后的以特定的时间间隔执行

  Zeitplan和scheduleAtFixedRate的区别在于,schedul以固定的相对时间间隔执行,如果某一次执行被延时了,往后的执行的执行时间也会相对延时;而scheduleAtFixedRate是以绝对的时间间隔执行, 如果某一次执行被延时, 它的后一次执行的延时将会缩短。


Das obige ist der detaillierte Inhalt vonVerwendung des JDK-Timer-Timers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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