回顧一下:定時調度spa
(1)Timer類的歸屬感:線程
Timer類是一種線程設施,每個Timer對象對應的是一個線程,所以計時器所執行的任務應該迅速完成,不然可能會延遲後續任務的執行,這些後續的任務就有可能堆在一塊兒,等到該任務完成後才能快速連續執行。對象
(2)Timer類執行時的夥伴:繼承
TimerTask,TimerTask類用來實現由Timer安排的一次或者重複執行的某一個任務。接口
(3)Timer類做用:內存
用來實如今某一個時間或者某一段時間後,安排某一個任務執行一次,或者按期重讀執行,該功能要與TimerTask配合使用。ci
No.io |
方法table |
類型方法 |
描述 |
1 |
public Timer() |
構造 |
用來建立一個計時器並啓動該計時器 |
2 |
public void cancel() |
普通 |
用來終止該計時器,並放棄全部已安排的任務,對當前正在執行的任務沒有影響 |
3 |
public int purge() |
普通 |
將全部已經取消的任務移除,通常用來釋放內存空間 |
4 |
public void schedule(TimerTask task, Date time) |
普通 |
安排一個任務在指定的時間執行,若是已經超過該時間,則當即執行 |
5 |
public void schedule(TimerTask task, Date firstTime, long period) |
普通 |
安排一個任務在指定的時間執行,以後以固定的頻率(單位:毫秒)重複執行 |
6 |
public void schedule(TimerTask task, long delay) |
普通 |
安排一個任務在一段時間(單位:毫秒)後執行。 |
7 |
public void schedule(TimerTask task, long delay,long period) |
普通 |
安排一個任務在一段時間(單位:毫秒)後執行,以後以固定的頻率(單位:毫秒)重複執行 |
8 |
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period) |
普通 |
安排一個任務在指定的時間執行,以後以近似固定的頻率(單位:毫秒)重複執行 |
9 |
public void scheduleAtFixedRate(TimerTask task, long delay,long period) |
普通 |
安排一個任務在一段時間(單位:毫秒)後執行,以後以近似固定的頻率(單位:毫秒)重複執行 |
(4) schedule()與scheduleAtFixedRate()方法的區別:
二者的區別在與重複執行任務時,對於時間間隔出現延遲的狀況處理: schedule()方法的執行時間間隔永遠是固定的,若是以前出現了延遲的狀況,以後也會繼續按照設定好的的間隔時間來執行, scheduleAtFixedRate()方法能夠根據出現的延遲時間自動調整下一次間隔的執行時間。
(5)要想執行具體的任務,則必須使用TimerTask類。TimerTask類是一個抽象類,若是要使用該類,須要本身創建一個類來繼承此類,並實現其中的抽象方法。
No. |
方法 |
類型 |
描述 |
1 |
public void cancel() |
普通 |
用來終止此任務,若是該任務只執行一次且尚未執行,則永遠不會再執行,若是爲重複執行任務,則以後不會再執行(若是任務正在執行,則執行完後不會再執行)。 |
2 |
public void run() |
普通 |
該任務所要執行的具體操做,該方法爲引入的接口Runnable中的方法,子類須要覆寫此方法。 |
3 |
public long scheduledExecutionTime() |
普通 |
返回最近一次要執行該任務的時間(若是正在執行,則返回此任務的執行安排時間),通常在run()方法中調用,用來判斷當前是否有足夠的時間來執行完成該任務。 |