传统定时器技术回顾

/**
* TraditionalTimer.java
* cn.com.songjy.test.socket.thread
* Function: TODO
*
* version date author
* ──────────────────────────────────
* 1.0 2013-8-15 songjy
*
* Copyright (c) 2013, TNT All Rights Reserved.
*/

package cn.com.songjy.test.socket.thread;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
* ClassName:TraditionalTimer
*
* @author songjy
* @version 1.0
* @since v1.0
* @Date 2013-8-15 下午9:33:29
*/

public class TraditionalTimer {

private static Log log = LogFactory.getLog(TraditionalThread.class);
private static long count;

public static void main(String[] args) {

/************ 定时Bomb ***********/
new Timer().schedule(new TimerTask() {

@Override
public void run() {
log.info("炸毁目标!");
}
}, 10 * 1000l);// 10秒后炸毁目标

/************ 连环Bomb ***********/
new Timer().schedule(new TimerTask() {

@Override
public void run() {
log.info("连环Bomb启动,目标销毁,哦也!");
}
}, 10 * 1000l, 3 * 1000l);// 10秒后启动第一个Bomb,然后每隔3秒启动一个Bomb!(连环炸,够爽,o(∩_∩)o
// 哈哈)

/************ 子母Bomb ***********/
new Timer().schedule(new TimerTask() {

@Override
public void run() {
log.info("母Bomb启动,目标销毁,哦也!");
new Timer().schedule(new TimerTask() {

@Override
public void run() {
log.info("子Bomb启动,目标销毁,哦也!");
}
}, 2 * 1000l);
}
}, 2 * 1000l);

class MyBomb01 extends TimerTask {

@Override
public void run() {
count = (count + 1) % 2;
log.info("连环子母Bomb启动,目标销毁,哦也!");
new Timer().schedule(new MyBomb01(), 2 * 1000l + 2000 * count);
}

}

/************ 连环子母Bomb一 ***********/
new Timer().schedule(new MyBomb01(), 2 * 1000l);// 第一个Bomb2秒后启动,间隔4秒后第二个Bomb启动,如此循环!(够狠的,嘻嘻)

/************ 连环子母Bomb二 ***********/
new Timer().schedule(new MyBomb02(), 2 * 1000l);//第一个Bomb与第二个Bomb2秒后启动,第三个间隔4秒后启动,此后与上一个【连环子母Bomb一】一样的规律

String t = "2013-08-15 22:45:00";
Date firstTime = null;
try {
firstTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(t);
} catch (ParseException e) {
log.error(e.getMessage(), e);
}

/************ 定时Bomb,2013-08-15晚上10点45分,启动Bomb ***********/
new Timer().schedule(new TimerTask() {

@Override
public void run() {
log.info("终于到了2013-08-15晚上10点45分,启动Bomb,目标销毁,任务完成,睡觉去,o(∩_∩)o 哈哈");
}
}, firstTime);

/************ 定时Bomb,每天晚上10点45分,启动Bomb ***********/
new Timer().schedule(new TimerTask() {

@Override
public void run() {
log.info("现在又是晚上10点45分,启动Bomb,目标销毁,任务完成,又该睡觉去,(*^__^*) 嘻嘻");
}
}, firstTime, 24 * 60 * 60 * 1000l);

// 为了查看效果,可以添加以下代码
while (true) {
log.info(Calendar.getInstance().get(Calendar.SECOND));// 输出当前的秒数
try {
Thread.sleep(1 * 1000l);
} catch (InterruptedException e) {
log.error(e.getMessage(), e);
}
}

}

}


class MyBomb02 extends TimerTask {

private static Log log = LogFactory.getLog(MyBomb02.class);

@Override
public void run() {
log.error("连环子母Bomb启动,目标销毁,哦也!");
new Timer().schedule(new MyBomb03(), 2 * 1000l);
}

}

class MyBomb03 extends TimerTask {

private static Log log = LogFactory.getLog(MyBomb03.class);

@Override
public void run() {
log.error("连环子母Bomb启动,目标销毁,哦也!");
new Timer().schedule(new MyBomb02(), 4 * 1000l);
}

}


引自:[url]http://down.51cto.com/data/443407[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值