java基础——多线程(传统定时器)

一、定时器的应用
1、Timer类

2、TimerTask类

启动定时器的代码,过10秒钟后启动定时器,然后每过1秒定时器执行一次,前面的两个线程是每两秒钟暂停一次,这样很便于观察运行效果。

例子:

定时器的比喻用定时炸弹及炸弹第一次爆炸多久后继续爆炸的比喻说明,例如,东突恐怖组织定于几年几月几日几时几分几秒启动炸弹去炸鸟巢,等待救援警察赶到时,再次发生爆炸,结果把救援的警察也一锅端了。

new Timer().schedule(
	new TimerTask(){
		public void run() {
			System.out.println(Thread.currentThread().getName());
		}
	}, 10000, 1000);


/*需求二、每2秒或者4秒切换爆炸*/
	class MyTimerTask extends TimerTask{ //这个MyTimerTask继承TimerTask
	private int count; //count用于得0、1
	@Override
	public void run() {
		count = (count+1)%2;
		System.out.println("bombing");
		new Timer().schedule(new MyTimerTask(), 2000+2000*count);//间隔2或4秒爆炸
		}
			
	}

	new Timer().schedule(new MyTimerTask(), 2000);//定时器入口,参数一是用上面定义的MyTimerTask
	while (true) { //这个循环用于打印出定时器每秒的
		System.out.println(new Date().getSeconds());
		try {
		Thread.sleep(1000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}

打印:

bombing
36
37
bombing
38
39
40
41
bombing
42
43
bombing


注:quartz也是定时有关的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值