定时器篇---java.util.TimerTask和quarts

最近项目中出现了定时执行任务的东西,研究了一下,觉得挺不错的,以后还用得到,就总结了下。

这里只介绍两种java.util.Timer 和 quarts

java.util.Timer

java自带的工具类,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,与java.util.TimerTask一起使用,容易使用。示例代码如下:

import java.util.Timer;
import java.util.TimerTask;

public class tes {
    public static void main(String[] args) {
        Timer timer=new Timer();
        timer.schedule(new myTimerTask(), 1000, 2000);
    }
}

class myTimerTask extends TimerTask{
    @Override
    public void run() {
        System.out.println("================");
    }
}

代码很简单,很容易使用,但是java.util.TimerTask只能每隔一段时间执行,不能在固定的时间点重复执行。

quarts

quarts可以配置在固定的时间点执行任务,就是配置稍复杂,不过功能很强大。

今天时间不够了,头有点不舒服,明天研究研究再写。

时间: 2024-10-11 00:11:13

定时器篇---java.util.TimerTask和quarts的相关文章

细说java.util.Timer

Timer是用于管理在后台执行的延迟任务或周期性任务,其中的任务使用java.util.TimerTask表示.任务的执行方式有两种: 按固定速率执行:即scheduleAtFixedRate的两个重载方法 按固定延迟执行:即schedule的4个重载方法 具体差别会在后面详细说明. 我们要实现一个定时任务,只需要实现TimerTask的run方法即可.每一个任务都有下一次执行时间nextExecutionTime(毫秒),如果是周期性的任务,那么每次执行都会更新这个时间为下一次的执行时间,当n

java.util.Timer类似于闹钟定时做任务

在web中实现任务计划,相当于实现闹钟的功能,要完成2个步骤: 1.定时器的设置: 2.对这个定时器的启动运行和停止进行实时监听 java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks 一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerTask一般是以匿名类方式创建. Timer是一种线程设施,用于安排以后在后台线程执行的任务,可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可调度TimerTas

Java Timer, TimerTask, Timer.Schedule

schedule的意思(时间表.进度表) timer.schedule(new TimerTask(){ void run()},0, 60*60*1000);timer.schedule(new MyTask(event.getServletContext()), 0, 60*60*1000);第一个参数"new MyTask(event.getServletContext())":是 TimerTask 类,在包:import java.util.TimerTask .使用者要继承

简单定时器的Java实现

这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需求 Timer类是用来执行任务的类,它接受一个TimerTask做参数 Timer有两种执行任务的模式,最常用的是schedule,它可以以两种方式执行任务:1:在某个时间(Data),2:在某个固定的时间之后(int delay).这两种方式都可以指定任务执行的频率 TimerTest.java: package com.cn; import java.io.IOException; import java.util.Timer; pu

定时器实现方式之TimerTask、Timer

在未来某个指定的时间点或者经过一段时间延迟后执行某个事件,这时候就需要用到定时器了.定时器的实现方式有很多种,今天总结最简单的实现方式.java 1.3引入了定时器框架,用于在定时器上下文中控制线程的执行,其由类Timer和TimerTask构成.Timer适用于大规模并发调度定时任务,在内部,该类使用二进制的堆表示其定时任务队列. 通过继承TimerTask或者创建匿名类的方式重写run()方法,创建一个定时任务,通过将其作为第一个参数调用Timer得schedule()方法,实现定时器. i

软件包 java.util 的分层结构

概述  软件包  类  使用   树  已过时  索引  帮助  JavaTM Platform Standard Ed. 6  上一个   下一个 框架    无框架    所有类         <a href="../../allclasses-noframe.html"><b>所有类</b>&

java.util.Timer简介

Timer是用于管理在后台执行的延迟任务或周期性任务,其中的任务使用java.util.TimerTask表示.任务的执行方式有两种: 按固定速率执行:即scheduleAtFixedRate的两个重载方法按固定延迟执行:即schedule的4个重载方法具体差别会在后面详细说明. 我们要实现一个定时任务,只需要实现TimerTask的run方法即可.每一个任务都有下一次执行时间nextExecutionTime(毫秒),如果是周期性的任务,那么每次执行都会更新这个时间为下一次的执行时间,当nex

定时任务,客户页面操作,使用java.util.timer(要求时间精确度不高的定时任务)

定时任务,客户页面操作,使用java.util.timer,因为@schedule 注解中定时的时间不能在不启动项目情况下修改. timer.cancel()任务队列全部移除,task.cancel()只移除队列中的一个任务. 页面操作定时任务,传递参数(访问任务接口URL和对应参数),修改timer 中Task,修改需要先移除Task.cancel(). 注意timer只能有一个对象,因为多个就会造成多线程定时任务(多线程需要保证每个队列timer中任务不重复). 好了,不多说 上代码:这里数

《java.util.concurrent 包源码阅读》09 线程池系列之介绍篇

concurrent包中Executor接口的主要类的关系图如下: Executor接口非常单一,就是执行一个Runnable的命令. public interface Executor { void execute(Runnable command); } ExecutorService接口扩展了Executor接口,增加状态控制,执行多个任务返回Future. 关于状态控制的方法: // 发出关闭信号,不会等到现有任务执行完成再返回,但是现有任务还是会继续执行, // 可以调用awaitTe