1. 程式人生 > >Java Timer任務執行消耗事件大於執行週期問題驗證

Java Timer任務執行消耗事件大於執行週期問題驗證

其實是一個不值得一提的小問題,不過既然驗證了,就拿出來分享一下吧。

OneCoder在要做一個週期性的任務,Timer即可實現,不過考慮到有可能在一個週期內,任務可能沒有結束,不知道Timer的處理方式,是直接啟動下一個,還是等待完成,還是可配置的。於是OneCoder進行了一個簡單的驗證:
/**
 * @author lihzh
 * @alia OneCoder
 * @blog http://www.coderli.com
 */
public class TimerMain {

	/**
	 * JDK Timer類測試類。主要測試在一個Timer週期內,執行緒未結束時,timer的處理情況。
	 * 
	 * @param args
	 * @author lihzh
	 * @alia OneCoder
	 */
public static void main(String[] args) { TimerTask timerTask = new TimerTask() { @Override public void run() { try { System.out.println(Thread.currentThread().getName()); Thread.sleep(1000 * 5); } catch (InterruptedException e) { e.printStackTrace(); } } }; Timer
timer = new Timer(); timer.scheduleAtFixedRate(timerTask, 0, 1000); } }

結論也很簡單,下一個任務會等待上一個任務執行完成再啟動。也算合理。