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

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

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

    posts - 28,  comments - 13,  trackbacks - 0

    在應(yīng)用開(kāi)發(fā)中,經(jīng)常需要一些周期性的操作,比如每5分鐘檢查一下新郵件等。對(duì)于這樣的操作最方便、高效的實(shí)現(xiàn)方式就是使用java.util.Timer工具類(lèi)。比如下面的代碼每5分鐘檢查一遍是否有新郵件:

    ???????? private ?java.util.Timer?timer;?
    ????????timer?
    = ? new ?Timer( true );?
    ????????timer.schedule(
    new ?java.util.TimerTask()? {?
    ????????????
    public ? void ?run()? {?
    ????????????????????
    // server.checkNewMail();?檢查新郵件?
    ????????????}
    ?
    ????????}
    ,? 0 ,? 5 * 60 * 1000 );?

    ?

    使用這幾行代碼之后,Timer本身會(huì)每隔5分鐘調(diào)用一遍server.checkNewMail()方法,不需要自己?jiǎn)?dòng)線(xiàn)程。Timer本身也是多線(xiàn)程同步的,多個(gè)線(xiàn)程可以共用一個(gè)Timer,不需要外部的同步代碼。
    ??? 在《The Java Tutorial》中有更完整的例子:

    public ? class ?AnnoyingBeep? {?
    ????Toolkit?toolkit;?
    ????Timer?timer;?
    ??
    ????
    public ?AnnoyingBeep()? {?
    ????toolkit?
    = ?Toolkit.getDefaultToolkit();?
    ????????timer?
    = ? new ?Timer();?
    ????????timer.schedule(
    new ?RemindTask(),?
    ???????????????????
    0 ,???????? // initial?delay?
    ??????????????????? 1 * 1000 );?? // subsequent?rate?
    ????}
    ?
    ??
    ????
    class ?RemindTask? extends ?TimerTask? {?
    ????
    int ?numWarningBeeps? = ? 3 ;?
    ??
    ????????
    public ? void ?run()? {?
    ????????
    if ?(numWarningBeeps? > ? 0 )? {?
    ????????????toolkit.beep();?
    ????????System.out.println(
    " Beep! " );?
    ????????numWarningBeeps
    -- ;?
    ????????}
    ? else ? {?
    ????????????toolkit.beep();??
    ????????????????System.out.println(
    " Time′s?up! " );?
    ????????????
    // timer.cancel();? // Not?necessary?because?we?call?System.exit?
    ????????????System.exit( 0 );??? // Stops?the?AWT?thread?(and?everything?else)?
    ????????}
    ?
    ????????}
    ?
    ????}
    ?
    ?????
    }
    ?


    這段程序,每隔3秒響鈴一聲,并打印出一行消息。循環(huán)3次。程序輸出如下:
    Task scheduled.
    Beep!?????
    Beep!????? //one second after the first beep
    Beep!????? //one second after the second beep
    Time′s up! //one second after the third beep

    Timer類(lèi)也可以方便地用來(lái)作為延遲執(zhí)行,比如下面的代碼延遲指定的時(shí)間(以秒為單位)執(zhí)行某操作。類(lèi)似電視的延遲關(guān)機(jī)功能。

    ?
    public ? class ?ReminderBeep? {?
    ?????
    ????
    public ?ReminderBeep( int ?seconds)? {?
    ????toolkit?
    = ?Toolkit.getDefaultToolkit();?
    ????????timer?
    = ? new ?Timer();?
    ????????timer.schedule(
    new ?RemindTask(),?seconds * 1000 );?
    ????}
    ?
    ??
    ????
    class ?RemindTask? extends ?TimerTask? {?
    ????????
    public ? void ?run()? {?
    ????????????System.out.println(
    " Time′s?up! " );?
    ????????toolkit.beep();?
    ????????
    // timer.cancel();? // Not?necessary?because?we?call?System.exit?
    ????????System.exit( 0 );??? // Stops?the?AWT?thread?(and?everything?else)?
    ????????}
    ?
    ????}
    ?
    ?????
    }
    ?


    ?

    posted on 2007-01-22 17:43 Lib 閱讀(756) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567



    我的JavaEye博客
    http://lib.javaeye.com


    常用鏈接

    留言簿(2)

    隨筆分類(lèi)

    文章分類(lèi)

    FLASH

    Java

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 7777久久亚洲中文字幕蜜桃| 老司机69精品成免费视频| 亚洲精品在线免费观看| 亚洲精品一级无码鲁丝片| 67194成是人免费无码| 免费av片在线观看网站| 全部一级一级毛片免费看| 亚洲夂夂婷婷色拍WW47| 亚洲精品中文字幕麻豆| 国产AV无码专区亚洲AVJULIA| 免费真实播放国产乱子伦| 在线观看免费宅男视频| 国拍在线精品视频免费观看| 另类免费视频一区二区在线观看 | 91网站免费观看| 在线涩涩免费观看国产精品 | 日本人的色道www免费一区| 成人免费黄色网址| 37pao成人国产永久免费视频| 成全高清在线观看免费| 巨胸喷奶水www永久免费| 无码天堂亚洲国产AV| 亚洲AV无码国产一区二区三区 | 在线观看免费av网站| 国产免费一区二区视频| 中文永久免费观看网站| 国产精品玖玖美女张开腿让男人桶爽免费看 | 亚洲人成电影网站国产精品| 免费日本黄色网址| 亚洲av无码不卡私人影院| 国产成人无码a区在线观看视频免费| 最近中文字幕免费mv视频8| 欧美日韩国产免费一区二区三区| 免费看成人AA片无码视频羞羞网| 91九色视频无限观看免费| 3344免费播放观看视频| 黄页网站在线观看免费高清| 精品熟女少妇AV免费观看| 女人让男人免费桶爽30分钟| 国产自产拍精品视频免费看| 国产婷婷高清在线观看免费|