1.我们有时候用到定时器,比如,定时一段时间,发送message,使用定时器却很简单,如下
new Timer().schedule(new TimerTask(){
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("bombing!");
}
}, 1000,3000); //延迟1秒,周期为3秒
延迟1秒后执行操作,每3秒打印"bombing!"
第一个参数
是 TimerTask 类,在包:import java.util.TimerTask .使用者要继承该类,并实现 public void run() 方法,因为 TimerTask 类实现了 Runnable 接口。
第二个参数"1000"的意思是:(1000就表示延迟1秒)
制定timer定时器第一次调用run方法的时间,0表示不指时间,立刻调用。一般这个参数指定的时间格式是:yyyy-MM-dd HH:mm:ss
第三个参数3000的意思就是: 3X1000毫秒,是3秒
第一次调用之后,从第二次开始每隔多长的时间调用一次 run() 方法。
2.如果我想,间隔2秒打印一次再间隔4秒打印一次,如此循环下去,如何实现?
class MyTimerTask extends TimerTask{
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("bombing!");
x=(x+1)%2; //x是静态全局变量
new Timer().schedule(new MyTimerTask(), 2000+2000*x);
}
};
new Timer().schedule(new MyTimerTask(), 2000);
while(true){
System.out.println(""+i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
i++;
}
这样就可以实现间隔2秒和4秒交替打印