《Java多線程編程核心技術》(五)定時器Timer的使用__演算法

來源:互聯網
上載者:User
定時器 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方法:如果執行任務的時間沒有被延時,那麼下一次任務的執行時間參考的是上一次任務的“結束”時的時間來計算。

延時的情況則沒有區別,也就是使用這兩個方法如果執行任務的 時間被延時,那麼下一次任務的執行時間參考的是上一次任務“結束”時的時間來計算、

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.