Java入门——定时调度

Java入门——定时调度



Timer类

Timer类是一种线程设施,可以用来实现在某一个时间或者某一段时间后安排某一个任务执行一次或者定时重复执行,该功能要与TimeTask配合使用.

  每一个Timer对象对应的是一个线程,因此计时器所执行的任务应该迅速完成,否者可能会延迟后续任务的执行。

序号 方法 类型 描述
1 Timer() 构造 创建一个计时器,并且启动这个计时器
2 cancle() 普通 终止该计时器,并放弃所有已经安排的任务
3 purge() 普通 将已经取消的任务移除,一般用来释放内存空间
4 schedule(TimerTask task,Date time) 普通 安排一个任务在指定的时间执行
5 schedule(TimerTask task,Date firstTime,long period) 普通 安排一个任务在指定的时间执行,然后以固定的频率重复执行
6 schedule(TimerTask task,long delay,long period) 普通 安排一个任务在一段时间后指定,并且以固定的频率重复执行
7 scheduleAtFixedRate(TimerTask task,Date firstTime,long period) 普通 安排一个任务在指定时间执行,然后以近似固定的频率重复执行
8 scheduleAtFixedRate(TimerTask task,long delay,long period) 普通 安排一个任务在一段时间后时间执行,然后以近似固定的频率重复执行
       

TimerTask类

是一个抽象类,需要建立子类实现其中的抽象方法。

序号 方法 类型 描述
1 cancle() 普通 用来终止此任务,如果该任务只执行一次并且还没有执行,则永远不会在执行,如果正在执行,则执行完后不会再执行,如果为重复执行任务,则之后不会再执行。
2 run() 普通 该任务所要执行的具体操作,该方法为引入的接口Runnable中的方法,子类需要继承此方法
3 scheduled ExecutionTime() 普通 返回最近一次要执行该任务的时间,一般在run()方法中调用,用来判断当前是否有足够的时间来执行该任务

范例

  定时打印系统的当前时间。

/*
 * 总结,需要建立一个task对象,建立一个Timer对象
 * task类继承与一个抽象类TimerTask,这个抽象类要实现run方法。
 */
package Sep27;
import java.util.*;
import java.text.*;
public class MyTask {
	public static void main(String[] args) {
		Timer t=new Timer();
		TextTask testtask=new TextTask();
		t.schedule(testtask, 1000, 2000);
	}
}
class TextTask extends TimerTask{
	public void run(){
		SimpleDateFormat sdf1=null;
		sdf1=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss.SSS");
		System.out.println("当前时间为:"+sdf1.format(new Date()));

	}
}

  结果:

当前时间为:2016年09月27日 16:09:14.493
当前时间为:2016年09月27日 16:09:16.231
当前时间为:2016年09月27日 16:09:18.231
当前时间为:2016年09月27日 16:09:20.236
当前时间为:2016年09月27日 16:09:22.238
当前时间为:2016年09月27日 16:09:24.242
当前时间为:2016年09月27日 16:09:26.245
当前时间为:2016年09月27日 16:09:28.247

  

时间: 2024-11-07 18:55:26

Java入门——定时调度的相关文章

Java的定时调度

一般在web开发中定时调度比较有用,因为要维护一个容器不关闭才可以一直定时操作下去. 定时调度:每当一段时间之后,程序就会自动执行,就称为定时调度.如果要使用定时调动,则必须要保证程序要始终运行着,也就是说定时调度是在程序之外又启动了一个新的线程. 完成定时调度需要Timer和TimerTask类的支持 Timer类: l Timer类是一种线程设施,可以是现在某一时间或某一时间后,安排某一任务执行一次,或定期重复执行.给功能要与TimerTask类结合使用.TimerTask类用来实现由Tim

11.11-全栈Java笔记:线程状态转换和任务定时调度

线程状态转换 1)New :创建好线程对象,但没有启动的时候. 一个线程调用start()之后不一定会马上启动,此时进入就绪状态,等待得到资源. 2)就绪线程序通过Scheduler(调度程序)去确定是否运行. 3)Runing---dead:运行结束(非双向,为单向箭头). 4)Runing---就绪:暂停(除了没有CPU,具备运行的所有条件). 5)Runing-otherwise(阻塞):因程序原因:调用sleep或join之后,线程被阻塞.这时不具备运行的条件,此时线程进入阻塞池.sle

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

java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 java 多线程—— 线程等待与唤醒 概述 第1部分 配置 第2部分 代码示例 第1部分 配置 有关quartz的api文档地址:Quartz Enterprise Job Scheduler 1.8.6 API 主要接口目录: 重点看下Job,Scheduler,Trigger,JobDetai

Java定时调度任务的实现

有时候,我们希望程序在将来的某一时刻执行,也有想过让它可以重复执行多次! 于是,我们就需要实现定时调度功能. 在java里,由两个类来共同实现定时调度:java.util.Timer 和 java.util.TimerTask Timer可以理解为有且只有一个后台线程对多个业务线程进行定时定频率调度 TimerTask可以理解为业务逻辑的编写 即:Timer按照一定的时间频率调度TimerTask里面的业务逻辑. 下面,通过实现怎么让程序在2秒后执行,来说明实现Timer调度的代码编写: Tim

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

java 多线程目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 学习了一段时间的多线程内容,项目中有个定时调度的需求,将之前的需求重新梳理了下,写了一个多线程调用的例子,加深学习. 定时调度的需求如下:设定任务的开始时间,分为单次调度和循环调度,访问指定的url. java 多线程--一个定时调度的例子

java 定时调度

<!-- 定时调度 --> <bean id="countTrafficDataQuertz" class="com.ncjk.utcs.common.quertz.CountTrafficData"></bean> <!-- 每天一次 --> <bean id="countTrafficDataJobDetail" class="org.springframework.schedu

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

1.  首先需要引入需要的jar包,如上图所示. 2. 编写需要定时调度的测试类: package com.jp.task; import java.util.Date; public class TestTask{ private static int counter = 0; protected void execute() { long ms = System.currentTimeMillis(); System.out.println("\t\t" + "=====

springmvc+quartz简单实现定时调度

一.简介:Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序.Jobs可以做成标准的Java组件或 EJBs.Quartz的最新版本为Quartz 2.3.0. 二.因为定时调度,在很多业务上面都会涉及,想要根据自己的规则来生成自己想要的达到的目的.所以利用quartz来时间定时任务的触发.是非常有必要的. 三.

Timer类实现定时调度

使用timer类定时调度,生成文件 timer类需要通过监听器来初始化定时器,web容器在运行时自动加载 先写个定时任务类CreateFileTask,继承至TimerTask,需要重写run()方法 import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; i