天天看點

手把手教你建立定時任務 | 帶你學《Java語言進階特性》之三十三

上一篇:借助ThreadLocal實作多線程安全 | 帶你學《Java語言進階特性》之三十二

在開發過程中經常會遇到自定義時鐘的需求,這時我們可以建立一個定時任務。本節将為你講解如何使用Timer類與TimerTask類實作定時任務的管理工作。

【本節目标】

通過閱讀本節内容,你将了解到Timer類和TimerTask類的相關方法和功能以及兩個類之間的關系,學會使用這兩個類去建立并啟動單次的或循環的定時任務。

定時器

定時器的主要操作是進行定時任務的處理。比如每天早上起來的鬧鈴一樣。在Java中提供有定時任務的支援,但是這種任務的處理隻是實作了一種間隔觸發的操作。

如果要實作定時的處理操作主要需要有一個定時操作的主體類,以及一個定時任務的控制。可以使用兩個類實作:

  • java.util.TimerTask類:實作定時任務處理;
  • java.util.Timer類:進行任務的啟動,啟動的方法:

      |- 任務啟動:public void schedule(TimerTask task, long delay)、延遲機關為毫秒;

  |- 間隔觸發:public void schedule(TimerTask task, long delay, long period);

範例:實作定時任務的處理

import java.util.Timer;
import java.util.TimerTask;
class MyTask extends TimerTask {    //任務主體
    @Override
    public void run() {     //多線程的處理方法
        System.out.println(Thread.currentThread().getName() + "、定時任務執行,目前時間:" + System.currentTimeMillis());
    }  //Timer-0、定時任務執行,目前時間:1522135666002
}
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        Timer timer=new Timer();     //定時任務
//        timer.schedule(new MyTask(),0);     //延遲時間設定為0表示立即啟動
//        timer.schedule(new MyTask(),1000);    //1秒後啟動
        //間隔觸發
        timer.scheduleAtFixedRate(new MyTask(),100,1000);//定義間隔任務,100毫秒後開始執行,每秒執行一次
    }
}           
手把手教你建立定時任務 | 帶你學《Java語言進階特性》之三十三

執行結果

手把手教你建立定時任務 | 帶你學《Java語言進階特性》之三十三

定時任務

這種定時是由JDK最原始的方式提供的支援,但是實際上開發之中利用采用此類方式進行的定時處理實作的代碼會非常的複雜。

想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。

本内容視訊來源于

阿裡雲大學 下一篇:使用Base64實作資訊加密傳輸 | 帶你學《Java語言進階特性》之三十四 更多Java面向對象程式設計文章檢視此處