一般在web开发中定时调度比较有用,因为要维护一个容器不关闭才可以一直定时操作下去。

  定时调度:每当一段时间之后,程序就会自动执行,就称为定时调度。如果要使用定时调动,则必须要保证程序要始终运行着,也就是说定时调度是在程序之外又启动了一个新的线程。

  完成定时调度需要Timer和TimerTask类的支持

Timer类:

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

   

schedule()和scheduleAtFixedRate()方法的区别:

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

  • l schedule()方法的执行时间间隔是固定的,如果之前出现了延迟的情况,之后也会继续按照指定的时间间隔来执行;
  • l scheduleAtFixedRate()方法可以根据出现的延迟时间自动调整下一次间隔的执行时间。

TimerTask类:

  要想执行具体的任务,则必须使用TimerTask类。TimerTask类是一个抽象类,如果要使用此类,需要自己建立一个类继承此类,并实现其中的抽象方法。

   

按照此概念,完成一个时间调度程序,每隔2秒打印一次时间。

定义一个类基础TimerTask类,完成具体的任务。

 import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask; public class MyTask extends TimerTask{ //任务调度类都要继承此类
@Override
public void run() { //完成具体的任务
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
System.out.println("当前系统时间:"+sdf.format(new Date()));
}
}

完成的是一个具体的任务操作类,以后定调度调的就是此类中的run()方法。

 public class TestTimerTask {   //测试类
public static void main(String args[]){
Timer t = new Timer(); //建立Timer对象
MyTask mt = new MyTask(); //定义任务
t.schedule(mt, 1000,2000); //设置任务的执行,1秒后开始,每2秒执行一次
}
}

Java的定时调度的更多相关文章

  1. java 任务定时调度(定时器)

    任务定时调度 通过Timer和Timetask,我们可以实现定时启动某个线程. java.util.Timer 在这种实现方式中,Timer类作用是类似闹钟的功能,也就是定时或者每隔一定时间触发一次线 ...

  2. java 多线程——quartz 定时调度的例子

    java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...

  3. java 多线程——一个定时调度的例子

    java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...

  4. Java学习笔记 -- Java定时调度工具Timer类

    1 关于 (时间宝贵的小姐姐请跳过) 本教程是基于Java定时任务调度工具详解之Timer篇的学习笔记. 什么是定时任务调度 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务. 在Ja ...

  5. java定时调度器解决方案分类及特性介绍

    什么是定时调度器? 我们知道程序的运行要么是由事件触发的,而这种事件的触发源头往往是用户通过ui交互操作层层传递过来的:但是我们知道还有另外一种由机器系统时间触发的程序运行场景.大家想想是否遇到或者听 ...

  6. 定时调度框架Quartz随笔

    最近项目中的定时批处理用到了quartz定时任务,在此记录下quartz的配置吧,一个小demo仅供参考,也方便自己今后复习! 下面直接来步骤吧! 一.首先,要搭起能让quartz正常运行的环境,至少 ...

  7. Spring中实现定时调度

    1,   内容简介 所谓的定时调度,是指在无人值守的时候系统可以在某一时刻执行某些特定的功能采用的一种机制,对于传统的开发而言,定时调度的操作分为两种形式: 定时触发:到某一时间点上执行某些处理操作: ...

  8. springmvc+quartz简单实现定时调度

    一.简介:Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十 ...

  9. Spring整合quartz框架实现任务定时调度

    1.  首先需要引入需要的jar包,如上图所示. 2. 编写需要定时调度的测试类: package com.jp.task; import java.util.Date; public class T ...

随机推荐

  1. Tsung测试之配置文件

    Jabber配置: <?xml version="1.0"?> <!DOCTYPE tsung SYSTEM "/usr/local/tsung/sha ...

  2. query使用

    1.row_array():返回查询结果中的第一条数据 include APP_PATH . "../mysql.class.php";$db = new mysql();$sql ...

  3. [SoapUI] DataSource, DataSourceLoop, DataSink

    Script assertion in login:

  4. HBase批量插入的简单代码

    由于项目需要从HBase里读取数据,进行MapReduce之后输出到HDFS中. 为了测试方便,我这里写了一个批量插入HBase数据的测试代码.采用的Maven工程. 打算,今后的所有用到的小测试例子 ...

  5. typeof()和instanceof的用法区别

    typeof() typeof() 是一个一元运算,放在一个运算数之前,运算数可以是任意类型.它返回值是一个字符串,该字符串说明运算数的类型.,typeof一般只能返回如下几个结果:number,bo ...

  6. 访问SAP的RFC

    .NET 环境Xp(sp3) vs2010, win2003 EN 32bit(sp2)winform,webform 引用sapnco.dll,sapnco_utils.dll(自动引用)配置文件需 ...

  7. ZookeeperGettingStarted

    reference url:  http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html#sc_FileManagement ZooKee ...

  8. jquery cookie用法

    jquery cookie用法(获取cookie值,删除cookie) cookie在jquery中有指定的cookie操作类,下面我先来介绍我们在使用cookie操作类时的一些问题,然后介绍正确的使 ...

  9. Shell脚本中$0、$?、$!、$$、$*、$#、$@

    1. $$Shell本身的PID(ProcessID) 2. $!Shell最后运行的后台Process的PID 3. $?最后运行的命令的结束代码(返回值) 4. $-使用Set命令设定的Flag一 ...

  10. Java中String、StringBuffer和StringBuilder之间的区别

    String在Java中是字符串常量 例如 String str = "abc"; str = str + 1; System.out.println(str); 结果将是abc1 ...