java 线程加定时器_java-线程-定时器

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这个任务调度的开源框架

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值