IT程序员开发必备-各类资源下载清单,史上最全IT资源,个人收藏总结!
Timer和TimerTask类:
Timer类为一个定时器类,调用其schedule(TimerTask task,...)方法,即可在指定时间调用TimerTask类的run()方法中的代码
TimerTask类为一个任务类,其为抽象类,只需要创建其子类,重写其run()方法,则可以调用run()中的代码
例子程序:
package edu.review;
import java.sql.Time;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class TraditionalTimer {
/**
* 目标一:创建一个定时器:延迟4秒后炸
* 目标二:创建一个定时器:延迟4秒后炸,然后每隔2秒炸
* 目标三:创建一个定时器:某一固定时刻炸
* 目标四:创建一个定时器:4秒和2秒交替着炸
* @throws InterruptedException
**/
static int count = 1; //目标四炸弹的标记变量
public static void main(String[] args) throws InterruptedException {
//目标一
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("炸弹1:bombing!");
}
},4000);
//目标二
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("炸弹2:bombing!");
}
}, 4000,2000);
//目标三
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("炸弹4:bombing!");
}
}, new Date(new Date().getTime()+1*60*1000));//1分钟后炸
//目标四
class MyTimerTask extends TimerTask{
@Override
public void run() {
count = (count+1)%2;
System.out.println("炸弹3:bombing!");
new Timer().schedule(new MyTimerTask(), (count+1)*2000);
}
}
new Timer().schedule(new MyTimerTask(),4000);
//打印时间
int i = 0 ;
while(true){
Thread.sleep(1000);
System.out.println(++i);
}
}
}