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

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

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

    codefans

    導(dǎo)航

    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統(tǒng)計(jì)

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    程序設(shè)計(jì)鏈接

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    簡單了解Timer與TimerTask

    作者:佚名 時(shí)間:2005-02-04 11:03 出處:互連網(wǎng) 責(zé)編:chinaitpower
                  摘要:簡單了解Timer與TimerTask

      Java2的開發(fā)包中提供了一種很使用的線程功能:提前安排將來某段時(shí)間執(zhí)行某任務(wù)Timer ,TimerTask。你可以使用這些類創(chuàng)建后臺(tái)進(jìn)程,讓其在等待一段規(guī)定的時(shí)間后執(zhí)行,或者讓其沒隔一段時(shí)間執(zhí)行。你也可以用Thread來完成,但利用Timer與TimerTask顯然省事不少。
      TimerTask實(shí)現(xiàn)了Runnable接口,待執(zhí)行的任務(wù)置于run()中。Timer是一個(gè)安排TimerTask的類此此兩者一般一起工作。所應(yīng)用時(shí)首先硬創(chuàng)建一個(gè)TimerTask的對象,然后用一個(gè)Timer的類對象安排執(zhí)行它
      Timer類包含的方法有:
      1.Timer()
      以常規(guī)方式運(yùn)行task
      2.Timer(boolean)
      true時(shí)使用后臺(tái)進(jìn)程線程。只要剩下的程序記敘運(yùn)行,后臺(tái)進(jìn)程線程就會(huì)執(zhí)行。
      3.public void cancel()
      終止Timer的功能執(zhí)行,但不會(huì)對正在執(zhí)行的任務(wù)有影響。當(dāng)執(zhí)行cancel方法后將不能再用其分配任務(wù)。
      4.public void schedule(TimerTask task,Date time)
      task被安排在time指定的時(shí)間執(zhí)行,如果時(shí)間為過去時(shí)則任務(wù)立刻執(zhí)行。
      5.public void schedule(TimerTask task, Date firstTime, long period)
      task被安排在time指定的時(shí)間執(zhí)行,執(zhí)行后將每隔period(毫秒)反復(fù)執(zhí)行。由于規(guī)定的時(shí)間間隔并不能保證與時(shí)鐘精準(zhǔn)的同不步,所以該方


    法最適合從短期看保持頻率準(zhǔn)確是更重要的的地方
      6.public void schedule(TimerTask task, long delay)
      task被安排在delay(毫秒)指定的時(shí)間后執(zhí)行。
      7.public void schedule(TimerTask task,long delay, long period)
      task被安排在delay(毫秒)指定的時(shí)間后執(zhí)行。執(zhí)行后將每隔period(毫秒)反復(fù)執(zhí)行。
      8.public void scheduleAtFixedRate(TimerTask task,Date firstTime, long period)
      task被安排在firstTime指定的時(shí)間執(zhí)行。執(zhí)行后將每隔period(毫秒)反復(fù)執(zhí)行。每一次重復(fù)的時(shí)間時(shí)盒第一次執(zhí)行而不是和前一次執(zhí)行有關(guān)


    。因此執(zhí)行的總速度是固定的。
      9.public void scheduleAtFixedRate(TimerTask task,long delay,long period)
      task被安排在delay(毫秒)指定的時(shí)間后執(zhí)行。執(zhí)行后將每隔period(毫秒)反復(fù)執(zhí)行。每一次重復(fù)的時(shí)間時(shí)盒第一次執(zhí)行而不是和前一次執(zhí)


    行有關(guān)。因此執(zhí)行的總速度是固定的。
      TimerTask的主要方法:
      1.public boolean cancel()
      終止任務(wù)的執(zhí)行運(yùn)行。如果Timer時(shí)要求循環(huán)執(zhí)行的,則如果正在執(zhí)行,則執(zhí)行完了就再步會(huì)循環(huán)。如果還未執(zhí)行或處于停歇期,則不會(huì)執(zhí)行



      2.public abstract void run()
      3.public long scheduledExecutionTime()
      返回被安排最后執(zhí)行任務(wù)的時(shí)間。一般確定任務(wù)的當(dāng)今的實(shí)行是否足夠及時(shí) ,證明進(jìn)行被計(jì)劃的活動(dòng)為正當(dāng):
      public void run() {
           if (System.currentTimeMillis() - scheduledExecutionTime() >=
               MAX_TARDINESS)
                   return;  // Too late; skip this execution.
           // Perform the task
       }


      4.protected TimerTask()



    例:


    import java.util.*;
    import java.io.*;



    public class doTask extends TimerTask {
        String index;
        Timer myTimer = new Timer();
        public doTask(String index) {
            this.index = index;
        }


        public void run() {
            System.out.println(index);
        }


        public static void main(String args[]) {
            doTask myTask1 = new doTask("First task");
            myTask1.start(0,3);
            doTask myTask2 = new doTask("Second task");
            myTask2.start(0,1);


            try{
                Thread.sleep(6000);
            }
            catch(InterruptedException e){           
            }  
           
            myTask1.end();
            myTask2.end();//程序結(jié)束時(shí)用cancel()結(jié)束Timer
           
        }


        public void start(int delay, int internal) {
            myTimer.schedule(this, delay * 1000, internal * 1000); //利用timer.schedule方法
        }
        public void end(){
            myTimer.cancel();
        }
    }


    輸出:
    First task
    Second task
    Second task
    Second task
    First task
    Second task
    Second task
    Second task

    posted on 2005-11-07 09:39 春雷的博客 閱讀(116) 評(píng)論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 日本不卡高清中文字幕免费| 国产伦精品一区二区免费| 91精品国产免费入口| 国产国拍精品亚洲AV片| 女bbbbxxxx另类亚洲| 国产无遮挡又黄又爽免费视频| 最新亚洲春色Av无码专区| 人妻视频一区二区三区免费| 亚洲中文字幕无码中文| 好男人www免费高清视频在线| 亚洲最大黄色网址| 国产高清免费视频| 天天摸夜夜摸成人免费视频| 国产精品高清视亚洲精品| 97人伦色伦成人免费视频| 色噜噜亚洲男人的天堂| 成人爱做日本视频免费| 四虎影视永久在线精品免费| 最近免费字幕中文大全视频| 亚洲第一二三四区| 成人免费视频88| 免费又黄又爽又猛大片午夜| 久久精品国产亚洲沈樵| 免费福利视频导航| 久久久久亚洲精品无码网址色欲| 亚洲国产天堂久久综合| 免费无码又爽又刺激高潮软件| 国产免费私拍一区二区三区| 一级看片免费视频| 亚洲AV无码成人网站久久精品大| 国产精品免费精品自在线观看| 亚洲av无码一区二区三区天堂| 中文亚洲AV片在线观看不卡| 57pao国产成永久免费视频| 亚洲AV电影天堂男人的天堂| 亚洲香蕉成人AV网站在线观看 | 午夜私人影院免费体验区| 四虎影视在线看免费观看| 亚洲人成电影亚洲人成9999网| 好男人看视频免费2019中文 | 永久在线观看免费视频|