多线程应用:用TimerTask于Timer任意时间调度任务

package com.proj.thread;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
/**
 * 1、任务在程序运行后两秒后第一次爆炸
 * 2、以后每隔3秒后爆炸,再隔5秒执行一次,如此循环...
 * 
 * */
public class MyTimerTask extends TimerTask{
	
	private static int count = 0;
	
	@Override
	public void run() {
		++count;                                                //爆炸次数计数器
		SOP("第"+count+"次爆炸,时间:"+getDate()+"--bombing");
		if(count%2==1){
			new Timer().schedule(new MyTimerTask(), 3000);
		}else{
			new Timer().schedule(new MyTimerTask(), 5000);
		}
		
	}

	private static String getDate() {
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
		String dateStr = sdf.format(date);
		return dateStr;
	}
	
	protected static void SOP(String string) {
		System.out.println(string);
	}

	public static void main(String[] args) {
		System.out.println(getDate());                  //开始记录时间
		new Timer().schedule(new MyTimerTask(), 2000);  //第一次爆炸
	}
}

你可能感兴趣的:(timer,timertask)