Timer与TimerTask

来源:互联网 发布:程序员求职成功 编辑:程序博客网 时间:2024/05/20 16:13

Timer为计时器,TimerTask为实现Runnable接口的抽象类。
要实现定时执行某些任务的功能时,需新增个任务类继承TimerTask类并实现run方法,调用timer.schedule方法把任务放于计时器中定时执行。

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)
安排指定的任务在指定的延迟后开始进行重复的固定速率执行。

代码如下:

public class TimerTest {    public static void main(String args[])    {        Timer timer = new Timer();        TimerTask timerTask1 = (TimerTask) new ScheduleTimerTask("timerTask1");        TimerTask timerTask2 = (TimerTask) new ScheduleTimerTask("timerTask2");        timer.schedule(timerTask1, 1000, 5000);        timer.schedule(timerTask2, 2000, 5000);        System.out.println(SystemTimeUtil.getCurTime() + "-----TimerTest.main()");    }}public class ScheduleTimerTask extends TimerTask{    private String taskName;    public ScheduleTimerTask(String taskName){        this.taskName = taskName;    }    @Override    public void run() {        System.out.println(SystemTimeUtil.getCurTime() +  "-----" + taskName + ".run()");    }}public class SystemTimeUtil {    public static String getCurTime()    {        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        return df.format(new Date());    }}

输出结果:

2015-10-09 16:01:44-----TimerTest.main()2015-10-09 16:01:45-----timerTask1.run()2015-10-09 16:01:46-----timerTask2.run()2015-10-09 16:01:50-----timerTask1.run()2015-10-09 16:01:51-----timerTask2.run()2015-10-09 16:01:55-----timerTask1.run()2015-10-09 16:01:56-----timerTask2.run()
0 0
原创粉丝点击