【发布时间】:2012-12-14 14:05:41
【问题描述】:
为什么java.util.Timer 对象没有isCancelled 方法?
如果 Timer 没有被取消,我想安排一个任务,如果它被取消,我想直接运行它(在同一个线程上)。
如果 Timer 已被取消,是否是唯一捕获 IllegalStateException 的选项? (抓到IllegalStateException感觉不对)。
【问题讨论】:
标签: java timer cancellation
为什么java.util.Timer 对象没有isCancelled 方法?
如果 Timer 没有被取消,我想安排一个任务,如果它被取消,我想直接运行它(在同一个线程上)。
如果 Timer 已被取消,是否是唯一捕获 IllegalStateException 的选项? (抓到IllegalStateException感觉不对)。
【问题讨论】:
标签: java timer cancellation
您是否确定要使用Timer?请改用ExecutorService,它具有isShutdown,并具有许多其他启动优势。从 Java 5 开始的一般建议是将 Timers 替换为 ExecutorServices。
有一个ScheduledExecutorService 接口专门用于预定的执行器服务。使用Executors.new... 方法之一进行实例化。
【讨论】:
Timer 类或多或少已被弃用?
ExecutorService,并且永远不要回头。再想一想,即使这个建议也很危险:如果您从 Timer 开始并且您的项目不断扩大,您可能会后悔没有从 ExecutorService 开始。