所谓的Timer,打开jdk的api文档可以看到它的定义:一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。通俗点讲就是说:有且仅有一个后台线程对多个业务线程进行定时定频率的调度。(一点也不通俗好么~~)

废话不多说,直接上个入门测试实例。代码如下:

首先:建立一个java项目。里面包含两个类:MyTimerTask和MyTimer。

MyTimerTask.java代码

///////////////////////////////////////////我是分割线///////////////////////////////////

package com.it.timer;

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

public class MyTimerTask extends TimerTask{
  private String name;
  public MyTimerTask (String inputName){
    name = inputName;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  @Override
  public void run() {
    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Calendar calendar = Calendar.getInstance();
    // 打印当前name的内容和当前执行的时间,为了更好的理解~~
    System.out.println("Current exec time is :" + sf.format(calendar.getTime()));
    System.out.println("Current exec name is :" + name);
  }

}

///////////////////////////////////////////我是分割线///////////////////////////////////

MyTimer.java

package com.it.timer;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;

public class MyTimer extends Timer {
  public static void main(String[] args) {
  //创建一个Timer实例
  Timer timer = new Timer();
  //创建一个MyTimerTask实例
  MyTimerTask myTimerTask = new MyTimerTask("zhangsan");
  SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  Calendar calendar = Calendar.getInstance();
  //通过timer定时定频率调用myTimerTask的业务逻辑
  //Timer.schedule(TimerTask task, long delay, long period)
  //方法第一个参数是TimerTask类型,这里是myTimerTask,delay即距离当前时间几秒,
  //period即执行任务的周期。方法表达的意思是任务task在delay时间后执行,并且每过period秒执行一次
  System.out.println("Current time of Main is :" + sf.format(calendar.getTime()));
  timer.schedule(myTimerTask, 2000L,1000L);
  //这里意思是在当前时间两秒后执行第一次,此后每过1秒执行一次。delay和period单位是毫秒,类型为long
  }
}

///////////////////////////////////////////我是分割线///////////////////////////////////

运行后控制台如下:

这么简单明了应该不用解释了吧^_^.

未完待续......

JAVA定时任务调度之Timer入门详解(一)的更多相关文章

  1. JAVA JDK 环境变量配置 入门详解 - 精简归纳

    JAVA JDK 环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 13 转载请注明出处!️ 目录 JAVA JDK 环境变量配置 入门详解 - 精简归纳 一.为什么j ...

  2. Sublime Text3 for Java 编译运行环境配置 入门详解 - 精简归纳

    Sublime Text3 for Java 编译运行环境配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 24 转载请注明出处!️ 目录 Sublime Text3 for ...

  3. Java定时任务调度工具Timer Quartz

      -----------------------------------Timer PS:Timer是 jdk中的:Quartz是第三方的 PS:也即是返回执行任务时候的时间 ----------- ...

  4. java定时任务调度工具Timer与Quartz的区别

    Timer与Quartz的区别有三点: 1.出身不同:Timer由jdk直接提供,调用方式简单粗暴,不需要其它jar包支持.Quartz并非jdk自带,需要引入相应的jar包 2.能力区别:主要体现在 ...

  5. linux 定时任务调度Cron的用法详解

    在linux中,推荐使用crontab -e命令添加自定义的任务,退出后重启crond进程. 重新启动cron服务或重新加载cron配置,命令: 复制代码代码示例: /etc/rc.d/init.d/ ...

  6. Quartz 入门详解

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

  7. java线程池的使用与详解

    java线程池的使用与详解 [转载]本文转载自两篇博文:  1.Java并发编程:线程池的使用:http://www.cnblogs.com/dolphin0520/p/3932921.html   ...

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

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

  9. Quartz 入门详解 专题

    Cron-Expressions are used to configure instances of CronTrigger. Cron-Expressions are strings that a ...

随机推荐

  1. 将STM32 iap hex文件与app hex文件合并为一个hex文件

    日前公司产品需要增加远程升级功能,boot loader程序写好后交予生产部门使用时他们反馈每个产品程序需要刷写两次(一个boot loader 一个app程序),生产进度变慢浪费时间,于是乎研究如何 ...

  2. nyist oj 756 重建二叉树

    重建二叉树 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描写叙述 题目非常easy.给你一棵二叉树的后序和中序序列,求出它的前序序列(So easy!). 输入 输入有多组 ...

  3. UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 46:illegal multibyte sequence

    一. 最近使用python写入文件时,出现了如下的错误: 但是content的内容是unicode编码,不知道怎么和gbk扯上了关系,对content使用encode()和decode(),用gbk, ...

  4. spring+hibernate项目demo搭建

    之前用maven+spring+mybatis+spring mvc搭建了一个web项目,用于学习spring及相关知识,现在打算将mybatis换成hibernate,一样搭建一个框架. 其实myb ...

  5. JavaScript操作符(一元操作符)

    JavaScript操作符包括算术操作符.位操作符.关系操作符和相等操作符.只能操作一个值的操作符叫做一元操作符. 递增和递减操作符 递增和递减操作符有两个版本:前置型和后置型.前置型操作符位于要操作 ...

  6. Spring Tool Suite生成默认的MVC项目的配置文件问题

    1.STS是开发Spring程序的首选,基于JavaEE的程序,我都用STS来开发,但是在生成默认的MVC项目时,其配置文件让人很讨厌,在许多选项上都会加一个beans,如<beans:bean ...

  7. 《英文写作指南 The elements of style》【PDF】下载

    <英文写作指南 The elements of style>[PDF]下载链接: https://u253469.ctfile.com/fs/253469-231196361 The el ...

  8. MongoDB集群搭建-副本集

    MongoDB集群搭建-副本集 概念性的知识,可以参考本人博客地址: 一.Master-Slave方案: 主从: 二.Replica Set方案: 副本集: 步骤:(只要按步骤操作,100%成功) 1 ...

  9. npm发布vue组件流程

    初始化项目vue init webpack-simple XXX 定义组件略 发布配置1.package.json 2.webpack.config.js(注释部分为原配置) 发布1.登录 2.发布n ...

  10. The Movie db (TMDB)的API申请

    在共享API TMDB中申请时,一只报错Application summary please elaborate on how you plan to use our API,我是用汉字描述的,开始以 ...