欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java中Timer的schedule()方法参数详解

程序员文章站 2024-02-27 14:02:33
timer.schedule(new mytask(),long time1,long timer2); 今天算是彻底的搞懂了这个曾经让我为之头疼的方法。下面...
timer.schedule(new mytask(),long time1,long timer2);

今天算是彻底的搞懂了这个曾经让我为之头疼的方法。下面我就重点介绍一下:

  • 第一个参数,是 timertask 类,在包:import java.util.timertask .使用者要继承该类,并实现public void run() 方法,因为 timertask 类 实现了 runnable 接口。
  • 第二个参数的意思是,当你调用该方法后,该方法必然会调用 timertask 类 timertask 类 中的 run()方法,这个参数就是这两者之间的差值,转换成汉语的意思就是说,用户调用 schedule() 方法后,要等待这么长的时间才可以第一次执行run() 方法。
  • 第三个参数的意思就是,第一次调用之后,从第二次开始每隔多长的时间调用一次 run() 方法。

附:

  技术人员在实现内部办公系统与外部网站一体化的时候,最重要的步骤就是从oa系统读取数据,并且根据网站模板生成最终的静态页面。这里就需要一个定时任务,循环的执行。

  技术人员在写定时任务的时候,想当然的以为timer.schedule(timertask task, longdelay)就是重复的执行task。程序运行后发现只运行了一次,总觉得是task里的代码有问题,花了很长时间调试代码都没有结果。

  仔细研读java api,发现:

  schedule(timertask task, long delay)的注释:schedules thespecified task for execution after the specifieddelay。大意是在延时delay毫秒后执行task。并没有提到重复执行

  schedule(timertask task, long delay, long period)的注释:schedulesthe specified task for repeated fixed-delay execution, beginningafter the specified delay。大意是在延时delay毫秒后重复的执行task,周期是period毫秒。

  这样问题就很明确schedule(timertask task, longdelay)只执行一次,schedule(timertask task, long delay, longperiod)才是重复的执行。关键的问题在于程序员误以为schedule就是重复的执行,而没有仔细的研究api,一方面也是英文能力不够,浏览api的过程中不能很快的理解到含义。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接