I've been working with ScheduledExecutorService.scheduleAtFixedRate() and noticed is has some odd behaviors related to incomplete executions. For example, if an Exception is thrown that is not caught within the Runnable method, all future executions of the schedule will be cancelled. I also noticed if a thread takes deadlocks or "just takes a really long time", all future executions will delayed indefinitely. ...