Timer 的簡單使用

Timer 的簡單使用: 按照我的理解,Timer 相當于一個線程任務調度器,new 一個 Timer 并且設置它的 schedule 方法可以很方便地決定要執(zhí)行什么任務,延遲多久才執(zhí)行,每隔多長時間后再一次執(zhí)行。
如何設置 Timer對象的 schedule 方法呢?
先來看到 schedule 方法的簽名:

        public void schedule(@NotNull java.util.TimerTask task,
                     long delay,
                     long period)

參數理解

可以看到 schedule 方法的參數列表中:

    第一個參數是一個 TimerTask 類對象
    第二個參數是 delay,
    第三個參數是 period。

delay 和 period 的中文意思分別是 “延遲” 和 “周期”。而對于一個定時任務來講,“延遲”和“周期”是該定時任務的屬性。決定了一個定時任務需要延遲多少毫秒(該參數的單位)開始執(zhí)行,以及循環(huán)執(zhí)行定時任務的周期大小。

第一個參數對于初學者來講就略顯復雜了。我自己也是剛剛接觸。TimerTask 本身是一個實現了Runnable接口的抽象類,有線程知識的同學都很清楚,在Runnable接口中,聲明了一個run()方法。這個方法是線程的執(zhí)行任務單元。當一個線程啟動之后,要完成的工作就是去執(zhí)行run()方法。

而TimerTask抽象類實現了Runnable接口,所以TimerTask也存在 run() 方法。 run()方法是線程要執(zhí)行的任務,所以將這個任務交給定時器的schedule方法。

然后這個定時器在底層會在延遲時間結束后,啟動這個線程任務, 并且周期性循環(huán)。

代碼實例:

    /*
    *測試定時器
    * */
    @Autowired
    private ProductTimerTask productTimerTask = null;  // 定義一個ProductTimerTask對象
    @Test
    public void test8 () {
        new Timer(false).schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("讀取數據庫數據");
            }
        }, 0, 1000);

        for (int i=0; i<5; i++) {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

上面程序中,Thread.sleep(2000)的存在是為了延長測試方法的生命周期,使得定時器的效果得以體現,即每隔1秒往控制臺輸出1條信息。
(end)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Timer 定時器相信都不會陌生,之所以拿它來做源碼分析,是發(fā)現整個控制流程可以體現很多有意思的東西。 在業(yè)務開發(fā)...
    石先閱讀 6,506評論 2 13
  • 一、Timer TimerTask 參考Java中的Timer和TimerTask在Android中的用法 在開發(fā)...
    合肥黑閱讀 8,441評論 5 21
  • 生活中的談話不只有茶余飯后的閑聊,常常會有一些高難度談話(例如:討論一次工作上的失敗應該是誰的責任、怎樣開...
    奮斗的djx小豆子閱讀 1,281評論 0 2
  • 引言 也許生命賦予了你自由,那它也會有無盡的選擇附屬給你。自古離多聚少,苦多樂少,什么是真,又有什么是我真正的擁...
    冬收閱讀 165評論 0 0
  • 寫下第一個字的時候,我的嘴裡還殘留著一股濃濃的中藥味,在它的作用下我的腦袋有些昏昏沈沈的。對藥的厭惡感也隨...
    方知思閱讀 216評論 2 0

友情鏈接更多精彩內容