Timer中schedule()的⽤法
schedule的意思(时间表、进度表)
timer.schedule(new TimerTask(){ void run()},0, 60*60*1000);
timer.schedule(new ServletContext()), 0, 60*60*1000);
百家争鸣是什么时期第⼀个参数"new ServletContext())":
是 TimerTask 类,在包:import java.util.TimerTask .使⽤者要继承该类,并实现 public void run() ⽅法,因为 TimerTask 类实现了Runnable 接⼝。
第⼆个参数"0"的意思是:(0就表⽰⽆延迟)
蜂蜜水果茶当你调⽤该⽅法后,该⽅法必然会调⽤ TimerTask 类 TimerTask 类中的 run() ⽅法,这个参数就是这两者之间时间的差值,也就是说,⽤户调⽤ schedule() ⽅法后,要等待这么长的时间才可以第⼀次执⾏ run() ⽅法。
第三个参数"60*60*1000"的意思就是:工作手册的模板
歌曲鸿雁歌词
(单位是毫秒60*60*1000为⼀⼩时)
(单位是毫秒3*60*1000为三分钟)
第⼀次调⽤之后,从第⼆次开始每隔多长的时间调⽤⼀次 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的过程中不能很快的理解到含义。时间的流逝