定時器 Timer的使用
在JDK庫中Timer類主要負責計劃任務的功能,也就是在指定的時間開始執行某一個任務。
Timer類的主要作用就是設定計劃任務,但封裝任務的類確實TimerTask類。執行計畫任務的代碼要放到TimerTask的子類中,因為TimerTask是一個抽象類別。
方法schedule(TimerTask task,Date time)
該方法的作用是在指定的日期執行一次某一任務。
方法schedule(TimerTask,Date firstTime,long period)
該方法的作用是在指定的日期只有,按指定的間隔周期性的無限迴圈的執行某一任務。
如果計劃時間早於目前時間,則立即執行task任務。
TimerTask類的cancel()方法的作用是將自身從任務隊列中清除,其他任務不受影響。
Timer類中的cancel()方法的作用是將任務隊列中的全部任務清空。
方法schedule(TimerTask task,long delay)
該方法的作用是以目前時間為參考時間,在此時間基礎上延遲指定的毫秒數後執行一次TimerTask任務。
方法schedule(TimerTask task,long delay,long period)
該方法的作用是以目前時間為參考時間,在此時間基礎上延遲指定的毫秒數,再以某一間隔時間無限次數的執行某一任務。
方法scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
方法schedule和方法scheduleAtFixedRate都會按順序執行,所以不要考慮非安全執行緒的情況,方法
schedule和scheduleAtFixedRate主要區別只在於不延時的情況:
使用schedule方法:如果執行任務的時間沒有被延時,那麼下一次任務的執行參考時間是上一次任務的“開始”時的時間來計算。
使用scheduleAtFixedRate方法:如果執行任務的時間沒有被延時,那麼下一次任務的執行時間參考的是上一次任務的“結束”時的時間來計算。
延時的情況則沒有區別,也就是使用這兩個方法如果執行任務的 時間被延時,那麼下一次任務的執行時間參考的是上一次任務“結束”時的時間來計算、