Timer和TimerTask定時器使用

2022-07-25 13:51:19 字數 2201 閱讀 3322

timer是一種定時器工具,用來在乙個後台執行緒計畫執行指定任務。它可以計畫執行乙個任務一次或反覆多次。

timertask乙個抽象類,它的子類代表乙個可以被timer計畫的任務。具體的任務在timertask中run介面中實現。

通過timer中的schedule方法啟動定時任務。

一、執行定時器

啟動乙個定時器實質是啟動乙個執行緒

1、在指定日期執行定時器任務,只執行一次

public

static

void main(string args) throws

parseexception

}, date);

//在指定的日期執行一次定時任務

/*如果date日期在今天之前,則啟動定時器後,立即執行一次定時任務run方法

*//*

如果date日期在今天之後,則啟動定時器後,會在指定的將來日期執行一次任務run方法

*/}

2、在距當前時刻的一段時間後執行定時器任務,只執行一次

public

static

void

main(string args)

}, 5000); //

指定啟動定時器5s之後執行定時器任務run方法,並且只執行一次

}

3、在指定的時間後,每隔指定的時間,重複執行定時器任務

1

public

static

void main(string args) throws

parseexception

13 }, date, 2000);

14/*

如果指定的date時間是當天或者今天之前,啟動定時器後會立即每隔2s執行一次定時器任務

*/15

/*如果指定的date時間是未來的某天,啟動定時器後會在未來的那天開始,每隔2s執行一次定時器任務

*/16 }

4、在距當前時刻的一段指定距離後,每隔指定時間執行一次定時器任務

public

static

void

main(string args)

}, 5000, 2000);

/*當啟動定時器後,5s之後開始每隔2s執行一次定時器任務

*/}

二、停止定時器

停止定時器實質是終止timer的執行緒。預設情況下,建立的timer執行緒會一直執行,如果要停止的話主要有以下四種方法終止timer執行緒:

呼叫timer的cancel方法;

把timer執行緒設定成daemon守護執行緒,當所有的使用者執行緒結束後,那麼守護執行緒也會被終止;

當所有的任務執行結束後,刪除對應timer物件的引用,執行緒也會被終止;

呼叫system.exit方法終止程式

舉例用cancel方法終止timer執行緒

public

static

void main(string args) throws

interruptedexception

}, 5000, 2000);

/*如果主線程不休眠一段時間,就執行了cancel方法,那麼定時器還沒來得及執行就會被關閉

*/thread.sleep(6000);

timer.cancel();

}

三、啟動任務schedule 與 scheduleatfixedrate的區別

1、schedule

public

static

void main(string args) throws

parseexception

}, date, 10 * 1000);

}

2、scheduleatfixedrate

1

public

static

void main(string args) throws

parseexception

12 }, date, 10 * 1000);

13 }

Timer和TimerTask的使用

timer可以定時執行timertask任務,使用起來也十分的方便。以下的 是輸出當前時間的timertask 輸出當前時間的任務 private static timertask task new timertask 以下 是使用timer執行timertask timer定時執行timertas...

Timer和TimerTask定時器使用

timer是一種定時器工具,用來在乙個後台執行緒計畫執行指定任務。它可以計畫執行乙個任務一次或反覆多次。timertask乙個抽象類,它的子類代表乙個可以被timer計畫的任務。具體的任務在timertask中run介面中實現。通過timer中的schedule方法啟動定時任務。啟動乙個定時器實質是...

spring中整合TimerTask執行定時任務

spring整合了定時器,timertask。由scheduledtimertask和time ctorybean類組成的。scheduledtimertask類是對timertask的包裝器實現,我們自定義觸發器。time ctorybean,使spring配置建立觸發器。org.springfr...