Timer定时器

来源:互联网 发布:淘宝联盟导购推广步骤 编辑:程序博客网 时间:2024/06/06 14:02

java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks。  

一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerTask一般是以匿名类的方式创建。

1、一个完整的Timer:     · 

java.util.Timertimer = new java.util.Timer(true);    //true 说明这个timer以daemon方式运行(优先级低, 程序结束timer也自动结束),注意,javax.swing包中也有一个Timer类,如果import中用到swing包,要注意名字的冲突。

 TimerTask task = new TimerTask() {     · 

publicvoid run() {    

 · ... //每次需要执行的代码放到这里面。    · 

                        }     ·

  };      

//以下是几种调度task的方法:    · 

timer.schedule(task,time);      · 

  // time为Date类型:在指定时间执行一次。   

   · 

timer.schedule(task,firstTime, period);     ·                                                                   

 // firstTime为Date类型,period为long      · 

//从firstTime时刻开始,每隔period毫秒执行一次。  

   · 

 timer.schedule(task, delay)      ·                                                              

   // delay 为long类型:从现在起过delay毫秒执行一次     · 


 timer.schedule(task, delay, period)      ·

  // delay为long,period为long:从现在起过delay毫秒以后,每隔period 毫秒执行一次。    


示例一:

package com.mxx.demo;

import java.util.Timer;

import java.util.TimerTask;

public class Demo4 {

   public static void main(String[] args) {

     

      TimerTask task = new TimerTask(){

         public void run(){

            System.out.println("Hello World");

         }

      };

      Timer timer = new Timer();

      //延迟2000毫秒开始运行,以后每隔2000毫秒重复运行

      timer.schedule(task, 2000,2000);

   }

}


示例二:

package com.mxx.demo;

 

import java.util.Timer;

import java.util.TimerTask;

class MyTask extends TimerTask{

 

   @Override

   public void run() {

      System.out.println("Hello Wold");   

   }}

public class Demo5 {

 

   public static void main(String[] args) {

      Timer timer = new Timer();

      //延迟2000毫秒开始运行,以后每隔2000毫秒重复运行

      timer.schedule(new MyTask(), 2000,2000);

   }

 

}






0 0