package timer;
import java.util.Timer;
import java.util.TimerTask;
/**
* 在高级点的 定时器 请百度 开元工具 quartz eg: 周一 到周五 执行XXX
* 下面介绍的 timer类仅仅能执行 指定开始时间,指定执行频率的功能, 无法指定结束时间。
* @author zm
*
*/
public class MyTimer {
/**
* 定时器执行方法 请参考api
*/
public static void main(String[] args) {
Timer myTimer = new Timer();
/*myTimer.schedule(new TimerTask(){
@Override
public void run() {
System.out.println("bombing!");
}
}, 1000);// 延迟1S后执行爆炸
*/
/*myTimer.schedule(new TimerTask(){
@Override
public void run() {
System.out.println("bombing!");
}
}, 1000,3000);// 延迟1S后执行第一次爆炸 然后每隔3S执行一次爆炸
*/
/* // 1S后母弹爆炸 2S后子弹爆炸 效果
myTimer.schedule(new TimerTask(){
@Override
public void run() {
System.out.println("mother bombing!"); // 母弹爆炸
new Timer().schedule(new TimerTask(){
@Override
public void run() {
System.out.println("son bombing!");
}
}, 2000); // 子弹爆炸
}
}, 1000);*/
// 自定义实现 2S后爆炸一次, 然后以2S为间隔持续进行爆炸效果
// myTimer.schedule(new MyTimerTask(), 2000);
// 实现间隔2s 4s形式来执行爆炸
myTimer.schedule(new MyTimerTask1(), 2000);
}
}
class MyTimerTask extends TimerTask {
@Override
public void run() {
System.out.println("bombing!"); // 在自身对象爆炸时, 新建出另一个定时器bombing,等待下次爆炸
new Timer().schedule(new MyTimerTask(), 2000);
}
}
class MyTimerTask1 extends TimerTask {
static int count = 1;
int result = count%2;
@Override
public void run() {
System.out.println(count + " bombing!"); // 在自身对象爆炸时, 新建出另一个定时器bombing,等待下次爆炸
new Timer().schedule(new MyTimerTask1(), 2000*(1 + result));
count++;
}
}