Java中Timer的schedule()⽅法参数详解
le(newMyTask(),longtime1,longtimer2);
今天算是彻底的搞懂了这个曾经让我为之头疼的⽅法。下⾯我就重点介绍⼀下:
第⼀个参数,是TimerTask类,在包:ask.使⽤者要继承该类,并实现publicvoidrun()⽅法,
因为TimerTask类实现了Runnable接⼝。
第⼆个参数的意思是,当你调⽤该⽅法后,该⽅法必然会调⽤TimerTask类TimerTask类中的run()⽅法,这个参数就
是这两者之间的差值,转换成汉语的意思就是说,⽤户调⽤schedule()⽅法后,要等待这么长的时间才可以第⼀次执⾏
run()⽅法。
第三个参数的意思就是,第⼀次调⽤之后,从第⼆次开始每隔多长的时间调⽤⼀次run()⽅法。
附:
技术⼈员在实现内部办公系统与外部⽹站⼀体化的时候,最重要的步骤就是从OA系统读取数据,并且根据⽹站模板⽣成
最终的静态页⾯。这⾥就需要⼀个定时任务,循环的执⾏。
技术⼈员在写定时任务的时候,想当然的以为le(TimerTasktask,longdelay)就是重复的执⾏task。程序运⾏后发现
只运⾏了⼀次,总觉得是task⾥的代码有问题,花了很长时间调试代码都没有结果。
仔细研读javaapi,发现:
schedule(TimerTasktask,longdelay)的注释:Schedulesthespecifiedtaskforexecutionafterthespecifieddelay。⼤意是在延
时delay毫秒后执⾏task。并没有提到重复执⾏
schedule(TimerTasktask,longdelay,longperiod)的注释:Schedulesthespecifiedtaskforrepeatedfixed-delayexecution,
beginningafterthespecifieddelay。⼤意是在延时delay毫秒后重复的执⾏task,周期是period毫秒。
这样问题就很明确schedule(TimerTasktask,longdelay)只执⾏⼀次,schedule(TimerTasktask,longdelay,longperiod)才是重复的执
⾏。关键的问题在于程序员误以为schedule就是重复的执⾏,⽽没有仔细的研究API,⼀⽅⾯也是英⽂能⼒不够,浏览API的
过程中不能很快的理解到含义。
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。如果
你想了解更多相关内容请查看下⾯相关链接
本文发布于:2022-12-26 14:50:06,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/34292.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |