Java Timer与ExecutorService?

Java Timer与ExecutorService?,第1张

Java Timer与ExecutorService?

根据实践中的Java并发性:

  • Timer
    对系统时钟的变化很敏感,
    ScheduledThreadPoolExecutor
    不是。
  • Timer
    只有一个执行线程,因此长时间运行的任务可能会延迟其他任务。
    ScheduledThreadPoolExecutor
    可以配置任意数量的线程。此外,你可以根据需要完全控制创建的线程(通过提供
    ThreadFactory
    )。
  • 抛出的运行时异常会TimerTask杀死一个线程,从而导致Timer死机:-( …即已调度的任务将不再运行。
    ScheduledThreadExecutor
    不仅捕获运行时异常,而且还允许你根据需要处理它们(通过覆盖
    afterExecute
    方法
    ThreadPoolExecutor
    )。抛出异常将被取消,但其他任务将继续运行。

如果可以

ScheduledThreadExecutor
代替使用Timer,请这样做。

还有一件事…虽然

ScheduledThreadExecutorJava 1.4
库中没有该功能,但是有一个将JSR 166(
java.util.concurrent
)反向移植到Java 1.2、1.3、1.4的
ScheduledThreadExecutor
类。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4930943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存