Frage zur Klasse java.util.Timer

takidoso

Erfahrenes Mitglied
Hallo und Halli,
was passiert eigetnlich mit einem TimerTask innerhalb eines java.util.Timers wenn dieser länger dauern sollte als die Periode in die er aufgerufen werden soll?

zur Veranschauung:

TimerTask benötigt vielleicht gelegentlich 5 minuten manchamal auch 7.
und Timer sei periodisch eingestellt auf 6 minuten.

Wird während der TimerTask läuft unter Umständen ein weiterer gestartet, obgleich er noch nicht fertig ist, oder darf man sich da sicher sein, dass er nur einmal aufgerufen wird?
Ich weiß da gibt es die Unterscheidung zwischen fixed rate und fixed delay. Aber gilt dies auch wenn der aufgerufene TimerTask selbst der Verursacher eines potentiell verspäteten Neuaufrufs ist?
Leider habe ich zu dieser Frage keine Doku gefunden. Frage deshalb... hat dies schonmal einer ausprobiert und kann ich damit meine Sorgen über Bord werfen?

Takidoso
 
Hallo,

der java.util.Timer verwendet intern nur 1 Thread zu Abarbeitung der TimerTasks. Wenn ein TimerTask nun länger dauert als das reschedule TimeOut wird der nächste TimerTask dann eben direkt im Anschluss an den aktuellen Task ausgeführt. Da läuft nix parallel.

Gruß Tom
 
Zurück