【Java常用類庫】_定時調度筆記

來源:互聯網
上載者:User

【Java常用類庫】_定時調度筆記

本章目標:
瞭解定時調度的作用。
掌握Timer和TimerTask類的作用

3、具體內容
定時調度,每當一端時間,程式會自動執行,稱為定時調度。
如果要使用定時調度,則必須保證程式始終運行著才可以,也就是說是相當於定時調度是在程式之外又啟動了一個新的線程!

Timer和TimeTask兩個類完成定時調度。

Timer類
Timer類是一種線程設施,可以用來實現某一個時間或某一段時間後,安排某一個任務執行一次,或定期重複執行。該功能要與TimerTask配合使用。TimerTask類用來實現由Timer安排的一次或重複執行的某一個任務。
每一個Timer對象對應是的一個線程,因此計時器所執行的任務應該迅速完成,否則可能會延遲後續任務的執行,而這些後續的任務就有可能堆在一起,等到該任務完成後才能快速連續執行。

schedule()與scheduleAtFixedRate()方法的區別

兩者的區別在與重複執行任務時,對於時間間隔出現延遲的情況處理:

schedule()方法的執行時間間隔永遠是固定的,如果之前出現了延遲的情況,之後也會繼續按照設定好的間隔時間來執行。

scheduleAtFixedRate()方法可以根據出現的延遲時間自動調整下一次間隔的執行時間。

執行個體代碼(間隔一段時間列印目前時間) :

// 完成具體的任務操作

import java.util.TimerTask ;import java.util.Date ;import java.text.SimpleDateFormat ;class MyTask extends TimerTask{    // 任務調度類都要繼承TimerTask    public void run(){        SimpleDateFormat sdf = null ;        sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS") ;        System.out.println("當前系統時間為:" + sdf.format(new Date())) ;    }};

import java.util.Timer ;public class TestTask{    public static void main(String args[]){        Timer t = new Timer() ;    // 建立Timer類對象        MyTask mytask = new MyTask() ;    // 定義任務        t.schedule(mytask,1000,2000) ;    // 設定任務的執行,1秒後開始,每2秒重複    }};

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.