Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Checking if a Java Timer is cancelled

Why is there no isCancelled method for a java.util.Timer object?

I would like to schedule a task if the Timer has not been cancelled, and run it directly (on the same thread) if it has been cancelled.

Is the only option to catch the IllegalStateException that might occur if the Timer already has been cancelled? (It feels wrong to catch an IllegalStateException).

like image 524
Simon Forsberg Avatar asked Dec 14 '12 14:12

Simon Forsberg


1 Answers

How sure are you that you want to use Timer? Use ExecutorService instead, which has isShutdown and has a slew of other benefits to boot. A general recommendation as of Java 5 has been to replace Timers with ExecutorServices.

There's a ScheduledExecutorService interface specifically for scheduled executor services. Instantiate using one of the Executors.new... methods.

like image 103
Marko Topolnik Avatar answered Oct 07 '22 18:10

Marko Topolnik