【Java常用类库】_定时调度笔记

来源:互联网 发布:手机淘宝秒杀怎么刷新 编辑:程序博客网 时间:2024/06/13 16:13

【Java常用类库】_定时调度笔记

分类: Java
【Java常用类库】_定时调度笔记

本章目标:
了解定时调度的作用。
掌握Timer和TimerTask类的作用

3、具体内容
定时调度,每当一端时间,程序会自动执行,称为定时调度。
如果要使用定时调度,则必须保证程序始终运行着才可以,也就是说是相当于定时调度是在程序之外又启动了一个新的线程!

Timer和TimeTask两个类完成定时调度。

Timer类
Timer类是一种线程设施,可以用来实现某一个时间或某一段时间后,安排某一个任务执行一次,或定期重复执行。该功能要与TimerTask配合使用。TimerTask类用来实现由Timer安排的一次或重复执行的某一个任务。
每一个Timer对象对应是的一个线程,因此计时器所执行的任务应该迅速完成,否则可能会延迟后续任务的执行,而这些后续的任务就有可能堆在一起,等到该任务完成后才能快速连续执行。



schedule()与scheduleAtFixedRate()方法的区别

两者的区别在与重复执行任务时,对于时间间隔出现延迟的情况处理:

schedule()方法的执行时间间隔永远是固定的,如果之前出现了延迟的情况,之后也会继续按照设定好的间隔时间来执行。

scheduleAtFixedRate()方法可以根据出现的延迟时间自动调整下一次间隔的执行时间。

实例代码(间隔一段时间打印当前时间) :

// 完成具体的任务操作 
[java] view plaincopyprint?
  1. import java.util.TimerTask ;  
  2. import java.util.Date ;  
  3. import java.text.SimpleDateFormat ;  
  4. class MyTask extends TimerTask{    // 任务调度类都要继承TimerTask  
  5.     public void run(){  
  6.         SimpleDateFormat sdf = null ;  
  7.         sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS") ;  
  8.         System.out.println("当前系统时间为:" + sdf.format(new Date())) ;  
  9.     }  
  10. };  



[java] view plaincopyprint?
  1. import java.util.Timer ;  
  2. public class TestTask{  
  3.     public static void main(String args[]){  
  4.         Timer t = new Timer() ;    // 建立Timer类对象  
  5.         MyTask mytask = new MyTask() ;    // 定义任务  
  6.         t.schedule(mytask,1000,2000) ;    // 设置任务的执行,1秒后开始,每2秒重复  
  7.     }  
  8. };  
0 0
原创粉丝点击