一般在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. LSP(分层服务提供程序)

    一.简介 LSP即分层服务提供商,Winsock 作为应用程序的 Windows 的网络套接字工具,可以由称为"分层服务提供商"的机制进行扩展.Winsock LSP 可用于非常广 ...

  2. [C++] c pointer

    the nature of pointer const keyword const int*  p int const *p int*  const p int const a const int a ...

  3. 白盒测试实践--Day4 12.20

    累计完成任务情况: 阶段内容 参与人 完成个人情况说明并提交作业 全体 汇总作业,查漏补缺,完成代码测试总结 小靳.小龙 完成测试小结 小黄.小尹 完成静态代码检查结果报告 小靳 完成JUnit脚本编 ...

  4. [GO]方法集

    指针变量的方法集 package main import "fmt" type Person struct { name string sex byte age int } fun ...

  5. 从命令行运行 MyBatis Generator

    ? ? 一.准备 1. 获取最新jar包 2. 获取xml dtd <?xml version="1.0" encoding="UTF-8"?> & ...

  6. MATLAB搬移到别的电脑出现License Manager Error -9

    是注册码的问题,不需要重装,主要是以前的安装包不见了.解决办法: 下一个KeyGen的MLMCrypt.exe文件.运行之后在当前目录下出现一个LICENSE.DAT文件. 复制到matlab.exe ...

  7. java 访问HTTPS rest服务

    import java.io.*;import java.net.*;import java.security.cert.CertificateException;import java.securi ...

  8. MySQL的下载和安装

    MySQL的下载 MySQL官网:https://www.mysql.com/ MySQL的安装 https://jingyan.baidu.com/article/6181c3e0d27a57152 ...

  9. 桂林理工大学第十届java程序设计初试竞赛试题

    原创 三.程序设计题(不得改变已经给出的部分,允许添加新的辅助函数或类)(共36分) (6分)1.以下函数的功能是判断一个正整数是否为质数,若是返回true,否则返回false.其中参数data为要判 ...

  10. 理解Javascript中的事件绑定与事件委托

    最近在深入实践js中,遇到了一些问题,比如我需要为动态创建的DOM元素绑定事件,那么普通的事件绑定就不行了,于是通过上网查资料了解到事件委托,因此想总结一下js中的事件绑定与事件委托. 事件绑定   ...