Wie ruft man einen Thread auf, der zu einer bestimmten Zeit in Java läuft?

8

Ich möchte, dass Threads genau zu bestimmten Zeiten ausgeführt werden (zum Beispiel: 2012-07-11 13:12:24 und 2012-07-11 15:23:45)

Ich habe ScheduledExecutorService überprüft, aber es unterstützt nur die Ausführung nach einem bestimmten Zeitraum vom ersten Lauf und ich habe keine festen Perioden, stattdessen habe ich mal von der Datenbank aus, um Aufgaben auszuführen.

In einer früheren Frage für ein anderes Problem hier , war TimerTask die Lösung, aber offensichtlich kann ich Thread TimerTask nicht machen, da Runnable und TimerTask beide die Methode run haben, die implementiert werden muss. Die Frage hier, wenn ich den Thread TimerTask erweitern und eine Implementierung von run() haben, würde das funktionieren? Wenn nicht, wie kann ich dann das machen, was ich versuche?

    
Sami 11.07.2012, 12:18
quelle

3 Antworten

11

Verwenden Sie TimerTask.

Erstellen Sie ein TimerTask-Objekt mit einer Feldvariablen als Ihren Thread. Rufen Sie den Thread-Start von der Run-Methode des Timer-Tasks auf.

%Vor%

Konfigurieren Sie es so.

%Vor%     
Akhil Dev 11.07.2012, 12:59
quelle
4

Ich denke, du solltest besser eine Bibliothek wie den Quartz Scheduler verwenden. Dies ist im Grunde eine Implementierung von Cron für Java.

    
carlspring 11.07.2012 12:26
quelle
1

Haben Sie sich CountDownLatch vom Java angesehen? util.concurrent Paket? Es bietet einen Countdown und löst dann die auszuführenden Threads aus. Ich musste es nie selbst benutzen, habe es aber ein paar Mal im Einsatz gesehen.

    
posdef 11.07.2012 12:28
quelle

Tags und Links