javatimerscheduled-tasksschedulingexecutorservice

Java Timer vs ExecutorService?


I have code where I schedule a task using java.util.Timer. I was looking around and saw ExecutorService can do the same. So this question here, have you used Timer and ExecutorService to schedule tasks, what is the benefit of one using over another?

Also wanted to check if anyone had used the Timer class and ran into any issues which the ExecutorService solved for them.


Solution

  • According to Java Concurrency in Practice:

    If you can use ScheduledThreadExecutor instead of Timer, do so.

    One more thing... while ScheduledThreadExecutor isn't available in Java 1.4 library, there is a Backport of JSR 166 (java.util.concurrent) to Java 1.2, 1.3, 1.4, which has the ScheduledThreadExecutor class.