定时器Timer简介

package timer;

import java.util.Timer;
import java.util.TimerTask;

/**
 * 在高级点的 定时器 请百度 开元工具 quartz  eg: 周一 到周五 执行XXX  
 * 下面介绍的 timer类仅仅能执行 指定开始时间,指定执行频率的功能, 无法指定结束时间。
 * @author zm
 *
 */
public class MyTimer {

	/**
	 * 定时器执行方法 请参考api
	 */
	public static void main(String[] args) {
		
		Timer myTimer = new Timer();
		/*myTimer.schedule(new TimerTask(){
			@Override
			public void run() {
				System.out.println("bombing!");
			}
		}, 1000);// 延迟1S后执行爆炸
*/		
		/*myTimer.schedule(new TimerTask(){
			@Override
			public void run() {
				System.out.println("bombing!");
			}
		}, 1000,3000);// 延迟1S后执行第一次爆炸  然后每隔3S执行一次爆炸
*/		
		
	/*	// 1S后母弹爆炸  2S后子弹爆炸 效果
		myTimer.schedule(new TimerTask(){
			@Override
			public void run() {
				System.out.println("mother bombing!"); // 母弹爆炸
				new Timer().schedule(new TimerTask(){
					@Override
					public void run() {
						System.out.println("son bombing!");
					}
					
				}, 2000); // 子弹爆炸
				
			}
		}, 1000);*/
		
		// 自定义实现 2S后爆炸一次, 然后以2S为间隔持续进行爆炸效果
		// myTimer.schedule(new MyTimerTask(), 2000);
		
		// 实现间隔2s  4s形式来执行爆炸
		 myTimer.schedule(new MyTimerTask1(), 2000);
		
	}

}

class MyTimerTask extends TimerTask {
	@Override
	public void run() {
		System.out.println("bombing!"); // 在自身对象爆炸时, 新建出另一个定时器bombing,等待下次爆炸
		new Timer().schedule(new MyTimerTask(), 2000);
	}
}

class MyTimerTask1 extends TimerTask {
	static int count = 1;
	int result = count%2;
	@Override
	public void run() {
		System.out.println(count + " bombing!"); // 在自身对象爆炸时, 新建出另一个定时器bombing,等待下次爆炸
		new Timer().schedule(new MyTimerTask1(), 2000*(1 + result));
		count++;
	}
}

猜你喜欢

转载自chengjianxiaoxue.iteye.com/blog/2144177