您的位置:首页 > 编程语言 > Java开发

JAVA定时器 (Timer TimerTask)学习

2013-12-04 09:49 363 查看
Timer类,是一种工具类,可安排任务执行一次或者定期重复重复执行

 

入门例子一:

 

public class OneTime {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new MyTimerTask();
Date date = new Date(System.currentTimeMillis() + 3000);
//过三秒之后执行任务
timer.schedule(task, date);
}
}

public class MyTimerTask extends TimerTask{
@Override
public void run() {
System.out.println("MyTimerTask");
}
}

 

上面的例子可以合并为一个

 

import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class TimerTaskDemo {

public static void main(String[]args){
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("MyTimerTask");
}
}, new Date(System.currentTimeMillis() + 3000));
}

}

  

备注:使用定时器让我联想到使用线程,只是显示是继承Thread类或者是Runnable接口,而定时器是继承TimerTask这个抽象类(必须要实现run()方法)

 

 

定时器取消的例子:

 

public class RepeatDo {
public static void main(String[] args) {
Timer timer=new Timer();
//创建一个计时器过两秒后每隔3S 执行一次操作
timer.schedule(new MyTimerTask1(1,timer), 2000, 1L*3000);
}
}

public class MyTimerTask1 extends TimerTask{
int round_id;
Timer timer;
public MyTimerTask1(int round,Timer timer) {
this.round_id = round;
this.timer = timer;
}
@Override
public void run() {
this.round_id++;
System.out.println("repeat : " + this.round_id);
//如果重复了4次之后就取消定时器
if(this.round_id == 5){
//根据传递过来的timer取消定时功能
timer.cancel();
}
}
}

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: