Java - Timer定時器

襲冷發表於2018-03-06

一、說明

    java.util.Timer就是一個定時呼叫的排程器,這個類允許你排程一個java.util.TimerTask任務。使用這種方式可以讓你的程式按照某一個頻度執行指定的任務


二、建立

    建立一個新計時器,無參構造,執行緒名預設以Timer為字首

public Timer()

    建立一個新計時器,指定是否為後臺執行緒,後臺執行緒當且僅當程式結束時自動登出掉

public Timer(boolean isDaemon)


三、模式

        Timer有兩種執行任務的模式:固定延遲排程和固定比率排程

    1、固定延遲排程(schedule),所有後續的執行根據上次執行的結束時間以近似固定的週期進行排程,保障兩次執行間的間隔


        安排在制定的時間執行指定的任務,僅排程一次

public void schedule(TimerTask task,Date time)

        安排在指定延遲後執行指定的任務,僅排程一次

Timer.schedule(TimerTask task,long delay)

        安排指定的任務在指定的時間開始進行重複的固定延遲執行

public void schedule(TimerTask task,Date firstTime ,long period)

        安排指定的任務從指定的延遲後開始進行重複的固定延遲執行

public void schedule(TimerTask task,long delay,long period)

    2、固定比率排程(scheduleAsFixedRate),所有後續的執行根據初始執行的開始時間以近似固定的週期進行排程,從而希望減小延遲


        安排指定的任務在指定的時間開始進行重複的固定速率執行

public void scheduleAtFixedRate(TimerTask task,Date firstTime,long period)

        安排指定的任務在指定的延遲後開始進行重複的固定速率執行

public void scheduleAtFixedRate(TimerTask task,long delay,long period)

四、示例

	Timer timer = new Timer();
	
	timer.schedule(new TimerTask() {
		
		@Override
		public void run() {
			// 定時排程的邏輯
		}
		
	}, 1000 * 10, 1000 * 60);



相關文章