2017-04-10 2 views
0

Ich habe ein Timer Objekt als solches erstellt:Timer.schedule interval: Warten die Intervallzeit auf die Ausführung der Run-Methode vor dem Neustart des Intervalls?

Timer timer = new Timer() 
TimerTask timerTask = new TimerTask() { 
    @Override 
    public void run() { 
     doSomething(); 
    } 
}); 
timer.schedule(timerTask, 0, 10 * 1000); 

Dies ist ein Timer, der alle 10 Sekunden ausgeführt wird. Was passiert, wenn die Zeit, die benötigt wird, um doSomething() zu laufen, größer ist als das Intervall? Wird der Timer warten, bis run() beendet ist, bevor das Intervall erneut gestartet wird?

Antwort

0

Vom JavaDocs

jede Ausführung ist relativ geplant auf die tatsächliche Ausführungszeit der vorherigen Ausführung. Wenn eine Ausführung aus irgendeinem Grund (wie Garbage Collection oder andere Hintergrundaktivität) verzögert wird, werden nachfolgende Ausführungen sowie

Ohne weitere Details verzögert werden, würde ich vorschlagen, einen Blick auf Timer#scheduleAtFixedRate

mit
Verwandte Themen