Timer 使用需知

使用Timerschedule(TimerTask task, Date firstTime, long period)方法时,如果firstTime早与当前时间,任务器会立刻执行。

不适用如下场景:

每天0点整运行:第一次运行后,间隔时间为一天

如果是在下午3点钟开始调用schedule方法,那么会立即执行,并且每天下午3点执行任务。

如果实现以上场景:

必须计算出第二天零点和当前时间差毫秒数,然后使用schedule(TimerTask task, long delay, long period)方法,将差值作为delay传入,即会在第二天(和以后每天的)零点执行任务。

定时器Timer

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Timer 定时器相信都不会陌生,之所以拿它来做源码分析,是发现整个控制流程可以体现很多有意思的东西。 在业务开发...
    石先阅读 11,492评论 2 13
  • 在需要按时间计划执行简单任务的情况下,Timer是最常被使用到的工具类。使用Timer来调度TimerTask的实...
    海纳百川_spark阅读 12,293评论 0 13
  • 网络上关于java定时器的文章真的是错误百出,给我的学习造成了很大的困扰,Timer根本就没有线程安全问题,Tim...
    江江的大猪阅读 5,750评论 0 33
  • 线程状态 线程调用start()方法开始后,就进入到可运行状态,随着CPU的资源调度在运行和可运行之间切换; Th...
    江江的大猪阅读 2,144评论 0 1
  • 小狗也要叫,叫了也白叫,汪汪叫两声,假装很大声!!……胡言乱语几句:到底何为“阅读”?一个人为什么会读另一个人写的...
    人间隐客阅读 1,495评论 0 0