TimerTaskは、異なる時間間隔操作(例えば、平日の特定の時間にメールを受け取る)を実現する.


package Test;

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

public class TranditionalTimer {
	/*
	 *                      
	 * TimerTask1 TimerTask2    ,     run  
	 */
	public static void main(String[] args) {
		int n = 0;
		Timer timer1 = new Timer();
		timer1.schedule(new TimerTask1(), 2000 * (n++));

		/*
		 *            
		 */
		while (true) {
			try {
				Thread.sleep(1000);
				System.out.println("   " + new Date().getSeconds() + "   ");
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
}

class TimerTask2 extends TimerTask {
	@Override
	public void run() {
		System.out.println(2);
		new Timer().schedule(new TimerTask1(), 2000);

	}
};

class TimerTask1 extends TimerTask {

	@Override
	public void run() {
		System.out.println(1);
		new Timer().schedule(new TimerTask2(), 5000);
	}
};

機能は基本的に実現しているが、新しいオブジェクトが増え続け、メモリオーバーフローを招きやすく、どうすればいいか分からない.