Java定时调度 Timer类和TimerTask类

Java定时调度 Timer类和TimerTask类 
(转):http://zengzhaoshuai.iteye.com/blog/1121105

  Timer类是一种线程设施,可以用来实现某一个时间或某一段时间后安排某一个任务执行一次或定期重复执行。该功能和TimerTask配合使用。TimerTask类用于实现由Timer安排的一次或重复执行的某个任务。每一个Timer对象对应的是一个线程,因此计时器所执行的任务应该迅速完成,否则会延迟后续的任务执行。
  Timer类方法摘要
Java代码 
void cancel()   
          终止此计时器,丢弃所有当前已安排的任务。   
int purge()   
          从此计时器的任务队列中移除所有已取消的任务。   
void schedule(TimerTask task, Date time)   
          安排在指定的时间执行指定的任务。   
void schedule(TimerTask task, Date firstTime, long period)   
          安排指定的任务在指定的时间开始进行重复的固定延迟执行。   
void schedule(TimerTask task, long delay)   
          安排在指定延迟后执行指定的任务。   
void schedule(TimerTask task, long delay, long period)   
          安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。   
void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)   
          安排指定的任务在指定的时间开始进行重复的固定速率执行。   
void scheduleAtFixedRate(TimerTask task, long delay, long period)   
          安排指定的任务在指定的延迟后开始进行重复的固定速率执行。  

void cancel()
          终止此计时器,丢弃所有当前已安排的任务。
int purge()
          从此计时器的任务队列中移除所有已取消的任务。
void schedule(TimerTask task, Date time)
          安排在指定的时间执行指定的任务。
void schedule(TimerTask task, Date firstTime, long period)
          安排指定的任务在指定的时间开始进行重复的固定延迟执行。
void schedule(TimerTask task, long delay)
          安排在指定延迟后执行指定的任务。
void schedule(TimerTask task, long delay, long period)
          安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
          安排指定的任务在指定的时间开始进行重复的固定速率执行。
void scheduleAtFixedRate(TimerTask task, long delay, long period)
          安排指定的任务在指定的延迟后开始进行重复的固定速率执行。

TimerTask类方法摘要
Java代码 
boolean cancel()   
          取消此计时器任务。   
abstract  void run()   
          此计时器任务要执行的操作。   
long scheduledExecutionTime()   
          返回此任务最近实际 执行的已安排 执行时间。  

boolean cancel()
          取消此计时器任务。
abstract  void run()
          此计时器任务要执行的操作。
long scheduledExecutionTime()
          返回此任务最近实际 执行的已安排 执行时间。


TimerTask类是个抽象类,如果要用该类,需要自己建立一个类来继承此类,并实现其中的抽象方法。
Java代码 
package zzs.time.demo;  
 
import java.text.SimpleDateFormat;  
import java.util.Date;  
import java.util.TimerTask;  
 
public class MyTask extends TimerTask {  
 
    @Override 
    public void run() {  
        // TODO Auto-generated method stub  
        SimpleDateFormat simpleDateFormat=null;  
        simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");  
        System.out.println("当前的系统时间为:"+simpleDateFormat.format(new Date()));  
 
    }  
 


package zzs.time.demo;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;

public class MyTask extends TimerTask {

@Override
public void run() {
// TODO Auto-generated method stub
SimpleDateFormat simpleDateFormat=null;
simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
System.out.println("当前的系统时间为:"+simpleDateFormat.format(new Date()));

}

}

Java代码 
package zzs.time.demo;  
 
import java.util.Timer;  
 
public class TestTask {  
 
    /** 
     * @param args 
     * @throws InterruptedException  
     */ 
    public static void main(String[] args) throws InterruptedException {  
        // TODO Auto-generated method stub  
        Timer  timer=new Timer();  
        MyTask myTask=new MyTask();  
        timer.schedule(myTask, 1000, 2000);  
               // Thread.sleep(5000);  
        //timer.cancel();  
 
    }  


package zzs.time.demo;

import java.util.Timer;

public class TestTask {

/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
Timer  timer=new Timer();
MyTask myTask=new MyTask();
timer.schedule(myTask, 1000, 2000);
               // Thread.sleep(5000);
//timer.cancel();

}
}



运行结果:
Java代码 
当前的系统时间为:2011-07-10 15:37:44:831 
当前的系统时间为:2011-07-10 15:37:46:786 
当前的系统时间为:2011-07-10 15:37:48:786 
当前的系统时间为:2011-07-10 15:37:50:786 
当前的系统时间为:2011-07-10 15:37:52:786 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值