jan
jan

Reputation: 45

Java Scheduled Executor: Does it guarantee to not run in parallel if task hast not yet finished

does anyone know if the following java Method in the java.util.concurrent Package ScheduledExecutorService.html#scheduleAtFixedRate()

absolutely guarantees, that the Runnable scheduled will never run in parallel in case the runnable from the "last" run did not yet finish:

For example (Pseudocode)

1.00 o'clock: scheduleAtFixedRate(MyRunnable, "Run ever Hour")`
//1.30 o'clock: MyRunnable Has finished (everthing is fine)
2.00 o'clock: MyRunnable is triggered to run again
3.00 o'clock: MyRunnable has NOT yet finished ==> What will happen here? 
Will java Simply SKIP the starting of MyRunnable (as the old instance has not yet 
finished) and try again at 4 o'clock or will Java start a NEW MyRunnable that then will 
run in parallel to the "old" MyRunnable.

Thank you very much Jan

Upvotes: 2

Views: 955

Answers (1)

bruno conde
bruno conde

Reputation: 48265

From the docs:

If any execution of this task takes longer than its period, then subsequent executions may start late, but will not concurrently execute.

Upvotes: 2

Related Questions