Проверка отмены Java-таймера

Почему нет метода isCancelled для объекта java.util.Timer?

Я хотел бы запланировать выполнение задачи, если Таймер не был отменен, и запустите его напрямую (в том же потоке), если он был отменен.

Единственная опция, чтобы поймать IllegalStateException, которая может возникнуть, если Таймер уже отменен? (Чувствует себя неправильно, чтобы поймать IllegalStateException).

Ответ 1

Насколько вы уверены, что хотите использовать Timer? Вместо этого используйте ExecutorService, у которого есть isShutdown и имеет множество других преимуществ для загрузки. Общая рекомендация по Java 5 заключалась в замене Timer на ExecutorService s.

Существует интерфейс ScheduledExecutorService, специально предназначенный для сервисов плановых исполнителей. Создайте один из методов Executors.new....