public class TraditionalTimerTest {
private static boolean flag;
/**
* @param args
*/
public static void main(String[] args) {
/**
* 连环炸弹哦
* @author gavinlin
*
*/
class MyTimerTask extends TimerTask{
@Override
public void run() {
System.out.println("bombing");
new Timer().schedule(new MyTimerTask(),flag == false ? 1000 : 3000);
flag = !flag;
}
}
new Timer().schedule(new MyTimerTask() , 1000);
new Thread(new Runnable() {
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(new Date().getSeconds());
}
}
}).start();
}
}
上面的代码干了什么事?
1.首先可以看下面代码,就是生成了一个定时器,1秒后启动MyTimeTask。
new Timer().schedule(new MyTimerTask() , 1000);
2.MyTimeTask继承了TimeTask,重写了run方法,里面是打印了bombing,还有生成另一个Timer,里面也是启动MyTimeTask,可以知道,这个bombing是不断打印的,不同的是隔一秒打印还是隔三秒打印。
/**
* 连环炸弹哦
* @author gavinlin
*
*/
class MyTimerTask extends TimerTask{
@Override
public void run() {
System.out.println("bombing");
new Timer().schedule(new MyTimerTask(),flag == false ? 1000 : 3000);
flag = !flag;
}
}
3.下面的线程有什么用?打印时间而已。
btw:了解quartz这个任务调度的开源框架