codefans

          導航

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

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          程序設計鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          簡單了解Timer與TimerTask

          作者:佚名 時間:2005-02-04 11:03 出處:互連網 責編:chinaitpower
                        摘要:簡單了解Timer與TimerTask

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


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


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


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



            2.public abstract void run()
            3.public long scheduledExecutionTime()
            返回被安排最后執行任務的時間。一般確定任務的當今的實行是否足夠及時 ,證明進行被計劃的活動為正當:
            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();//程序結束時用cancel()結束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 春雷的博客 閱讀(117) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 兖州市| 通江县| 株洲县| 平原县| 浮梁县| 湘潭县| 腾冲县| 泗水县| 双流县| 新龙县| 全州县| 南岸区| 武冈市| 贵港市| 神农架林区| 蓬安县| 河东区| 玉溪市| 桂林市| 西华县| 新余市| 静海县| 镇远县| 金坛市| 清苑县| 荔波县| 聊城市| 保定市| 汕头市| 湘西| 来凤县| 合水县| 福建省| 凌云县| 襄垣县| 阆中市| 遵义市| 三原县| 铜川市| 边坝县| 乌鲁木齐县|