Timer&&TimerTask類

回顧一下:定時調度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()方法中調用,用來判斷當前是否有足夠的時間來執行完成該任務。

相關文章
相關標籤/搜索