Java中schedule与scheduleAtFixedRate定时任务有何区别与共性?

2026-05-15 22:530阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计979个文字,预计阅读时间需要4分钟。

Java中schedule与scheduleAtFixedRate定时任务有何区别与共性?

一、使用+相同点+任务执行未超时,当前次执行时间=上次执行开始时间+period+任务执行超时,当前次执行时间=上次执行结束时间+不同点+schedule在错过之后会按照自己的节奏继续走。

一、使用

相同点

  • 任务执行未超时,则下次执行时间 = 上次执行开始时间 + period
  • 任务执行超时,则下次执行时间 = 上次执行结束时间

不同点

  • schedule在错过以后会按照自己的节奏继续走,可能会导致丢失任务,但时间间隔稳定。
  • scheduleAtFixedRate在错过后,会努力追赶进度,以确保保持执行频率的稳定。

代码示例

我们进行一个简单的测试,在下面的代码中,每3秒就会有一个间隔5秒的线程休眠(模拟超时),对比一下二者输出数据的区别。

阅读全文

本文共计979个文字,预计阅读时间需要4分钟。

Java中schedule与scheduleAtFixedRate定时任务有何区别与共性?

一、使用+相同点+任务执行未超时,当前次执行时间=上次执行开始时间+period+任务执行超时,当前次执行时间=上次执行结束时间+不同点+schedule在错过之后会按照自己的节奏继续走。

一、使用

相同点

  • 任务执行未超时,则下次执行时间 = 上次执行开始时间 + period
  • 任务执行超时,则下次执行时间 = 上次执行结束时间

不同点

  • schedule在错过以后会按照自己的节奏继续走,可能会导致丢失任务,但时间间隔稳定。
  • scheduleAtFixedRate在错过后,会努力追赶进度,以确保保持执行频率的稳定。

代码示例

我们进行一个简单的测试,在下面的代码中,每3秒就会有一个间隔5秒的线程休眠(模拟超时),对比一下二者输出数据的区别。

阅读全文