java定时调度

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1、继承TimerTask类的自定义的任务类,就是Timer安排的的任务2、每一个Timer对象对应一个线程,后续的任务需要等待该任务完成后才能执行因此计时器所执行的任务应该迅速完成3、Timer类中主要方法:publicTimer():创建计时器并启动该计时器(即在newTimer()时就启动一个线程)publicvoidcancel():终止计时器并取消该计时器安排的任务,不包括计时器正在执行的任务publicintpurge():将所有已经取消的任务移除,一般用来释放内存空间publicvoidschedule(TimerTasktask,longdelay):安排一个任务在一段时间(单位毫秒)后执行publicvoidschedule(TimerTasktask,Datetime):安排一个任务在指定时间执行(若已经超过该时间,则立即执行)publicvoidschedule(TimerTasktask,DatefirstTime,longperiod):安排一个任务在指定时间执行,之后以固定的频率(单位毫秒)重复执行publicvoidschedule(TimerTasktask,longdelay,longperiod):安排一个任务在一段时间(单位毫秒)后执行,之后以固定的频率(单位毫秒)重复执行publicvoidscheduleAtFixedRate(TimerTasktask,DatefirstTime,longperiod):安排一个任务在指定时间执行,之后以近似固定的频率(单位毫秒)重复执行publicvoidscheduleAtFixedRate(TimerTasktask,longdelay,longperiod):安排一个任务在一段时间(单位毫秒)后执行,之后以近似固定的频率(单位毫秒)重复执行schedule与scheduleAtFixedRate的区别在于重复执行任务时怎样对待到执行任务时却出现了延迟。schedule设定的时间间隔不变,scheduleAtFixedRate可以根据延迟时间自动调整下一次间隔的执行时间。比如设置的时间是12:00执行,到12:00时无法执行任务,延迟了1分若用schedule,则下次执行时,会在12:01执行若用scheduleAtFixedRate,则下次执行时,会在12:00执行(冠:真正的定时,不太确定是不是这样)如果第一次执行时延迟了5s,则第二次执行时4、举例:完成一个定时调度的程序:1s后执行,每隔2s打印一次时间。(1)完成一个具体的任务操作类,以后定时调度就调度此类的操作,方法的主体是run()方法importjava.util.TimerTask;importjava.util.Date;importjava.text.SimpleDateFormat;classMyTaskextendsTimerTask{//TimerTask为抽象类,MyTask必须实现抽象方法run()publicvoidrun(){SimpleDateFormatsdf=null;sdf=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss.SSS);System.out.println(当前系统时间为:+sdf.format(newDate()));}};(2)建立测试类,并执行任务调度。importjava.util.Timer;publicclassTestTask{publicstaticvoidmain(Stringargs[]){Timert=newTimer();MyTaskmytask=newMyTask();t.schedule(mytask,1000,2000);}};冠(不清楚):不需要将MyTask.java类编译,也不需要将它导入到TestTask中运行结果:(1秒后开始,每2秒重复)当前系统时间为:2013-05-0811:04:53.671当前系统时间为:2013-05-0811:04:55.671当前系统时间为:2013-05-0811:04:57.671当前系统时间为:2013-05-0811:04:59.671当前系统时间为:2013-05-0811:05:01.671

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功