- 定时器的使用
- Timer timer=new Timer("timer");
- TimerTask task=new TimerTask() {
-
- @Override
- public void run() {
- System.out.println("TimerTask....");
-
- }
- };
- timer.scheduleAtFixedRate(task, 0,1000);
-
- /**
- * 每天的晚上一点发送电子邮件
- * @param args
- */
- public static void main(String[] args) {
- Timer timer=new Timer("SendMailTimeTask");
- SendMailTimeTask task=new SendMailTimeTask();
- Calendar calendar=Calendar.getInstance();
- calendar.set(2013,Calendar.JULY ,28, 1,0);
- timer.scheduleAtFixedRate(task, calendar.getTime(), 5*1000);
- }
- Timer类包含的方法有:
- 1.Timer()
- 以常规方式运行task
- 2.Timer(boolean)
- true时使用后台进程线程。只要剩下的程序记叙运行,后台进程线程就会执行。
- 3.public void cancel()
- 终止Timer的功能执行,但不会对正在执行的任务有影响。当执行cancel方法后将不能再用其分配任务。
- 4.public void schedule(TimerTask task,Date time)
- task被安排在time指定的时间执行,如果时间为过去时则任务立刻执行。
- 5.public void schedule(TimerTask task, Date firstTime, long period)
- task被安排在time指定的时间执行,执行后将每隔period(毫秒)反复执行。
- 由于规定的时间间隔并不能保证与时钟精准的同不步,执行时间间隔period和前一次执行有关,
- 所以该方法最适合从短期看保持频率准确是更重要的的地方
- 和scheduleAtFixedRate(TimerTask task,Date firstTime, long period) 主要区别在于 该时间间隔与前一个相隔 the previous execution
- 6.public void schedule(TimerTask task, long delay)
- task被安排在delay(毫秒)指定的时间后执行。
- 7.public void schedule(TimerTask task,long delay, long period)
- task被安排在delay(毫秒)指定的时间后执行。执行后将每隔period(毫秒)反复执行。
- 8.public void scheduleAtFixedRate(TimerTask task,Date firstTime, long period)
- task被安排在firstTime指定的时间执行。
- 执行后将每隔period(毫秒)反复执行。每一次重复的时间时和第一次执行而不是和前一次执行有关。因此执行的总速度是固定的。
- 9.public void scheduleAtFixedRate(TimerTask task,long delay,long period)
- task被安排在delay(毫秒)指定的时间后执行。执行后将每隔period(毫秒)反复执行。每一次重复的时间时盒第一次执行而不是和前一次执行有关。因此执行的总速度是固定的。
复制代码 |