今天算是彻底的搞懂了这个曾经让我为之头疼的方法。下面我就重点介绍一下:
附:
技术人员在实现内部办公系统与外部网站一体化的时候,最重要的步骤就是从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的过程中不能很快的理解到含义。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对VeVb武林网的支持。
新闻热点
疑难解答
图片精选