java自带的Timer,TimerTask类来实现定时器.
1、概述 (java api)
Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。
TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。
2、例子
主要步骤:
1)自定义定时器任务,继承TimerTask。
2)Timer调用定时器任务。
package com.bing.timetask; import java.io.IOException; import java.util.TimerTask; public class MyTimeTask extends TimerTask{ @Override public void run() {//需要重写run方法。 Runtime rt= Runtime.getRuntime(); String command="cmd.exe /c start http://localhost:8080/code/qiandao.jsp"; try { rt.exec(command); } catch (IOException e) { e.printStackTrace(); } } }
package com.bing.timetask;import java.io.IOException;import java.util.Timer;public class TimerTest {public static void main(String[] args) throws IOException { Timer timer=new Timer(); timer.schedule(new MyTimeTask(),1000,1000*60*60*24);//延迟一秒后隔一天重复调用MyTimeTask 中run方法。 while(true){ int i=System.in.read(); if((char)i=='q'){ timer.cancel(); break; } }}}
补充知识:
Timer 方法:
void | schedule(TimerTask task,Date time)
安排在指定的时间执行指定的任务。 |
void | schedule(TimerTask task,Date firstTime,
long period) 安排指定的任务在指定的时间开始进行重复的固定延迟执行。 |
void | schedule(TimerTask task, long delay) 安排在指定延迟后执行指定的任务。 |
void | schedule(TimerTask task, long delay, long period) 安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。 |
void | scheduleAtFixedRate(TimerTask task,Date firstTime,
long period) 安排指定的任务在指定的时间开始进行重复的固定速率执行。 |
void | scheduleAtFixedRate(TimerTask task, long delay, long period) 安排指定的任务在指定的延迟后开始进行重复的固定速率执行。 |