【问题标题】:Checking if a Java Timer is cancelled检查 Java 定时器是否被取消
【发布时间】:2012-12-14 14:05:41
【问题描述】:

为什么java.util.Timer 对象没有isCancelled 方法?

如果 Timer 没有被取消,我想安排一个任务,如果它被取消,我想直接运行它(在同一个线程上)。

如果 Timer 已被取消,是否是唯一捕获 IllegalStateException 的选项? (抓到IllegalStateException感觉不对)。

【问题讨论】:

    标签: java timer cancellation


    【解决方案1】:

    您是否确定要使用Timer?请改用ExecutorService,它具有isShutdown,并具有许多其他启动优势。从 Java 5 开始的一般建议是将 Timers 替换为 ExecutorServices。

    有一个ScheduledExecutorService 接口专门用于预定的执行器服务。使用Executors.new... 方法之一进行实例化。

    【讨论】:

    • 这是否意味着Timer 类或多或少已被弃用?
    • 是的,你可以这么说。如果它符合您的要求,请使用它,但如果不符合要求,请转到ExecutorService,并且永远不要回头。再想一想,即使这个建议也很危险:如果您从 Timer 开始并且您的项目不断扩大,您可能会后悔没有从 ExecutorService 开始。
    • 已弃用?不,但不适合很多任务。 stackoverflow.com/questions/2213109/…
    猜你喜欢
    • 2020-02-24
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多