Java—传统定时器的简单使用

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秒交替打印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值