java.util.Timer定時(shí)器,實(shí)際上是個(gè)線程,定時(shí)調(diào)度所擁有的TimerTasks。  
  一個(gè)TimerTask實(shí)際上就是一個(gè)擁有run方法的類,需要定時(shí)執(zhí)行的代碼放到run方法體內(nèi),TimerTask一般是以匿名類的方式創(chuàng)建。  
   
  一個(gè)完整的Timer:  
   
  java.util.Timer   timer   =   new   java.util.Timer(true);  
      //   true   說明這個(gè)timer以daemon方式運(yùn)行(優(yōu)先級低,  
      //       程序結(jié)束timer也自動(dòng)結(jié)束),注意,javax.swing  
      //   包中也有一個(gè)Timer類,如果import中用到swing包,  
      //   要注意名字的沖突。  
   
  TimerTask   task   =   new   TimerTask()   {  
      public   void   run()   {  
            ...   //每次需要執(zhí)行的代碼放到這里面。  
      }  
  };  
   
  //以下是幾種調(diào)度task的方法:  
   
  timer.schedule(task,   time);    
  //   time為Date類型:在指定時(shí)間執(zhí)行一次。  
   
  timer.schedule(task,   firstTime,   period);  
  //   firstTime為Date類型,period為long  
  //   從firstTime時(shí)刻開始,每隔period毫秒執(zhí)行一次。  
   
  timer.schedule(task,   delay)  
  //   delay   為long類型:從現(xiàn)在起過delay毫秒執(zhí)行一次  
   
  timer.schedule(task,   delay,   period)  
  //   delay為long,period為long:從現(xiàn)在起過delay毫秒以后,每隔period  
  //     毫秒執(zhí)行一次。   
   

下面是一個(gè)完整的例子,由兩個(gè)類組成,一個(gè)定制任務(wù),一個(gè)調(diào)用java.util.Timer

定制任務(wù):
import java.util.Timer;

public class TimerTaskTest extends java.util.TimerTask{

 @Override
 public void run() {
  // TODO Auto-generated method stub
  System.out.println("start");
 }
}
2.調(diào)用java.util.Timer
import java.util.Timer;

public class Test {
 public static void main(String[] args){
  Timer timer = new Timer();
  timer.schedule(new TimerTaskTest(), 1000, 2000);
  try{
   Thread.sleep(1000);
  }catch(Exception ex){
   timer.cancel();
  }
 }
}
根據(jù)上面的介紹,便可以在1秒后,每隔2秒執(zhí)行一次程序
建議:在使用Timer timer = new Timer()時(shí),不要用Timer timer = new Timer(true).因?yàn)檫@樣,在程序結(jié)束后,timer也自動(dòng)結(jié)束了,不利于使用