<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JDK Timer定時器的應(yīng)用【轉(zhuǎn)摘】

    作者:熔 巖
    研究了Quartz企業(yè)級定時器后,感覺功能太強大了,如果要執(zhí)行一些簡單的定時器任務(wù),無須做復(fù)雜的控制,也無須保存狀態(tài),那么可以考慮使用JDK 入門級的定期器Timer來執(zhí)行重復(fù)任務(wù)。
     
    一、原理
    JDK中,定時器任務(wù)的執(zhí)行需要兩個基本的類:
        java.util.Timer;
        java.util.TimerTask;
    要運行一個定時任務(wù),最基本的步驟如下:
    1、建立一個要執(zhí)行的任務(wù)TimerTask。
    2、創(chuàng)建一個Timer實例,通過Timer提供的schedule()方法,將TimerTask加入到定時器Timer中,同時設(shè)置執(zhí)行的規(guī)則即可。
    當(dāng)程序執(zhí)行了Timer初始化代碼后,Timer定時任務(wù)就會按照設(shè)置去執(zhí)行。
    Timer中的schedule()方法是有多種重載格式的,以適應(yīng)不同的情況。該方法的格式如下:
     void schedule(TimerTask task, Date time)
              安排在指定的時間執(zhí)行指定的任務(wù)。
     void schedule(TimerTask task, Date firstTime, long period)
              安排指定的任務(wù)在指定的時間開始進(jìn)行重復(fù)的固定延遲執(zhí)行。
     void schedule(TimerTask task, long delay)
              安排在指定延遲后執(zhí)行指定的任務(wù)。
     void schedule(TimerTask task, long delay, long period)
              安排指定的任務(wù)從指定的延遲后開始進(jìn)行重復(fù)的固定延遲執(zhí)行。
    Timer是線程安全的,此類可擴(kuò)展到大量同時安排的任務(wù)(存在數(shù)千個都沒有問題)。其所有構(gòu)造方法都啟動計時器線程??梢哉{(diào)用cancel() 終止此計時器,丟棄所有當(dāng)前已安排的任務(wù)。purge()從此計時器的任務(wù)隊列中移除所有已取消的任務(wù)。此類不提供實時保證:它使用 Object.wait(long) 方法來安排任務(wù)。
    TimerTask是一個抽象類,由 Timer 安排為一次執(zhí)行或重復(fù)執(zhí)行的任務(wù)。它有一個抽象方法run()----計時器任務(wù)要執(zhí)行的操作。因此,每個具體的任務(wù)類都必須繼承TimerTask類,并且重寫run()方法。另外它還有兩個非抽象的方法:
     boolean cancel()
              取消此計時器任務(wù)。
     long scheduledExecutionTime()
              返回此任務(wù)最近實際 執(zhí)行的安排 執(zhí)行時間。
    二、例子
    下面用Timer實現(xiàn)一個簡單例子:
    package stu.timer;

    import java.util.Date;
    import java.util.TimerTask;

    /**
    * 重復(fù)執(zhí)行的任務(wù)
    *
    * @author leizhimin,2008-10-9 9:20:20
    */

    public class TestTimerTask extends TimerTask {
            /**
             * 此計時器任務(wù)要執(zhí)行的操作。
             */

            public void run() {
                    Date executeTime = new Date(this.scheduledExecutionTime());
                    System.out.println("本次任務(wù)執(zhí)行的時間是" + executeTime);
            }
    }
    package stu.timer;

    import java.util.Timer;
    import java.util.TimerTask;

    /**
    * 測試JDK Timer的執(zhí)行
    *
    * @author leizhimin,2008-10-9 9:24:35
    */

    public class TestTimer {
            public static void main(String[] args) {
                    Timer timer = new Timer();
                    TimerTask task = new TestTimerTask();
                    timer.schedule(task, 500L, 1000L);
            }
    }
     
    運行結(jié)果:
    本次任務(wù)執(zhí)行的時間是Thu Oct 09 09:47:57 CST 2008
    本次任務(wù)執(zhí)行的時間是Thu Oct 09 09:47:58 CST 2008
    本次任務(wù)執(zhí)行的時間是Thu Oct 09 09:47:59 CST 2008
    本次任務(wù)執(zhí)行的時間是Thu Oct 09 09:48:00 CST 2008
    本次任務(wù)執(zhí)行的時間是Thu Oct 09 09:48:01 CST 2008
    本次任務(wù)執(zhí)行的時間是Thu Oct 09 09:48:02 CST 2008
    本次任務(wù)執(zhí)行的時間是Thu Oct 09 09:48:03 CST 2008
    本次任務(wù)執(zhí)行的時間是Thu Oct 09 09:48:04 CST 2008
    本次任務(wù)執(zhí)行的時間是Thu Oct 09 09:48:05 CST 2008
            ......
     

    posted on 2009-09-18 23:26 張平輝 閱讀(195) 評論(1)  編輯  收藏

    評論

    # re: JDK Timer定時器的應(yīng)用【轉(zhuǎn)摘】 2011-10-11 09:15 廣福的老王

    謝謝分享!  回復(fù)  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2011年10月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導(dǎo)航

    統(tǒng)計

    留言簿

    文章分類

    文章檔案

    搜索

    最新評論

    主站蜘蛛池模板: 久久WWW色情成人免费观看| 亚洲一区日韩高清中文字幕亚洲| 国产91免费在线观看| 国产亚洲av片在线观看18女人 | 最近2019中文字幕免费看最新 | 99re在线视频免费观看| 亚洲av无码不卡| 美女被cao网站免费看在线看| 国产精品入口麻豆免费观看| 亚洲高清无在码在线无弹窗 | 亚洲AV无码一区二区三区久久精品| 成年美女黄网站色大免费视频| 91亚洲性爱在线视频| 中文字幕影片免费在线观看| 中文字幕亚洲无线码a| 大妹子影视剧在线观看全集免费 | 免费欧洲毛片A级视频无风险| 精品亚洲A∨无码一区二区三区| 免费观看激色视频网站(性色)| 亚洲国产成人久久精品99 | 在线免费观看中文字幕| 亚洲AV无码资源在线观看| 免费人成视网站在线观看不卡| 亚洲午夜在线一区| 成人激情免费视频| 一级特黄特色的免费大片视频| 亚洲精品无码乱码成人| 18禁黄网站禁片免费观看不卡| 亚洲最大AV网站在线观看| 久久这里只精品国产免费10| 亚洲欧洲精品在线| 无码一区二区三区免费| 亚洲av无码一区二区三区观看| 国产高清免费在线| 在线观看特色大片免费网站| 亚洲国产亚洲片在线观看播放| 亚洲А∨精品天堂在线| 最刺激黄a大片免费网站| 亚洲AV综合永久无码精品天堂| 女人18毛片水真多免费看| 一区二区视频在线免费观看|