`

JavaTimer使用疑惑

    博客分类:
  • java
阅读更多
  今天工作需要用到java的定时器,于是做了个例子,发现一个不是很明白的问题,不知道这是不是正常情况:
timer的几个schedule方法执行时,如果时间设为已过时间,几个方法中指定时间的也都会执行。尤其是指定时间重复执行的方法,指定时间已过,但还会执行。

例子代码如下:

package timer;

import java.util.Calendar;
import java.text.ParseException;
import java.util.Timer;
import java.util.Date;

public class TestTimer {

public static void testTimer()
{
Timer timer = new Timer();
Calendar c = Calendar.getInstance();
c.add(Calendar.MINUTE, -1);//将时间设为已过时间
Date date = c.getTime();
System.out.println(date.toLocaleString());

timer.schedule(new TestTimerTask("安排在指定的时间执行指定的任务11"), date);
timer.schedule(new TestTimerTask("安排在指定延迟后执行指定的任务22"), 60*1000l);

timer.schedule(new TestTimerTask("安排指定的任务在指定的时间开始进行重复的固定延迟执行33"), date, 60*1000l);
timer.schedule(new TestTimerTask("安排指定的任务从指定的延迟后开始进行重复的固定延迟执行44"), 60*1000l, 60*1000l);

timer.scheduleAtFixedRate(new TestTimerTask("安排指定的任务在指定的时间开始进行重复的固定速率执行55"), date, 120*1000l);
timer.scheduleAtFixedRate(new TestTimerTask("安排指定的任务在指定的延迟后开始进行重复的固定速率执行66"), 60*1000l, 120*1000l);
}
public static void main(String[] args)
{
testTimer();
}
}

package timer;

import java.util.TimerTask;

public class TestTimerTask extends TimerTask{

private String msg ;

public TestTimerTask(String msg)
{
this.msg = msg;
}
public void run()
{
System.out.println("--->>"+msg);
}
}

分享到:
评论

相关推荐

    java timer定时器详解(附详细代码)

    Java Timer定时器详解 Java Timer定时器是Java语言中的一种常用的定时器机制,它可以帮助开发者实现一些需要在特定时间或...通过使用java.util.Timer和java.util.TimerTask两个类,开发者可以轻松地实现定时器的功能。

    java5定时器java Timer

    这个类是Java早期版本中对定时任务管理的一个重要实现,尽管在Java 5之后,`java.util.concurrent`包中的`ScheduledExecutorService`被推荐使用,但`Timer`仍然在很多场景下被广泛采用。 `Timer`类主要有两个核心...

    java定时器(timer类使用详解)

    Java定时器,也被称为`Timer`类,是Java标准库中的一个强大工具,它允许开发者在指定的时间间隔执行任务,从而实现定时操作。这个类在`java.util`包中定义,是实现定时任务调度的核心。在本文中,我们将深入探讨`...

    java关于 Timer计时器的练习

    有个简单的java 的例子描述对java的Timer的使用的介绍,与实现的例子,方便大家学习

    小码农的代码(四)----------JAVA中Timer定时器与Spring定时任务

    在Java编程语言中,`Timer`类和Spring框架的定时任务是两种常见的实现定时执行任务的方式。本篇文章将深入探讨这两个主题,旨在帮助初学者理解它们的工作原理以及如何在实际项目中应用。 首先,让我们来看一下Java...

    Timer-java.rar_java timer_timer_timer java

    下面我们将深入探讨`Timer`类及其在Java中的使用: 1. **`Timer`类的基本使用**: `Timer`类主要通过两个方法来调度任务:`schedule(TimerTask task, long delay)`和`schedule(TimerTask task, Date firstTime, ...

    JavaTimer和TimerTask实例教程Java开发

    在Java编程语言中,`Timer`和`TimerTask`是两个重要的类,它们用于调度周期性的任务执行。这两个类属于`java.util`包,提供了在后台线程中延迟执行任务或者定期执行任务的能力,这对于创建定时任务或者实现定时器...

    Java Timer:schedule和scheduleAtFixedRate

    在Java编程语言中,`java.util.Timer` 类是用于调度任务执行的重要工具。它允许我们按照预定的时间间隔安排任务的执行,或者在特定的未来时间点执行一次或多次任务。本篇文章将深入探讨 `Timer` 类的两个核心方法:`...

    Java--Timer--TimerTask--.rar_java timer

    在Java编程语言中,`Timer`和`TimerTask`是两个关键类,它们用于调度周期性的任务执行。这两个类在多线程环境下尤其有用,能够帮助开发者安排在将来某一特定时间或定期执行的任务。让我们深入了解一下`Timer`和`...

    Timer java定时器

    Timer java定时器

    java_Timer_thread.rar_java thread timer_java timer_java 定时器_java

    Java中的定时器(Timer)是Java.util包下用于执行定期任务的一个类,它与线程(Thread)紧密关联,能够帮助开发者实现定时执行特定任务的需求。这个机制在多线程编程(multithreading)中非常有用,特别是在需要定期...

    Java计时器Timer 使用.doc

    Timer 类在 Java 中是用于调度任务的工具,它允许程序员安排任务在未来某个时间点或者按照一定的周期执行。这个类位于 `java.util` 包下,与之配合使用的还有一个名为 `TimerTask` 的抽象类,它是所有计划任务的基础...

    java Timer定时器实例 Spring实例.doc

    【Java Timer定时器】 在Java中,`java.util.Timer` 类是用于调度任务的类,它可以在特定的时间点或者按照设定的周期执行某项任务。`Timer` 类提供了两种计划任务的方法:`schedule(TimerTask task, long delay)` ...

    java定时任务调度之Timer 简单示例

    在本文中,我们将深入探讨`Timer`类的基本使用和示例,帮助你理解如何在Java程序中实现简单的定时任务。 首先,`Timer`类提供了计划任务的能力,它可以按照预定的时间间隔安排任务执行。创建一个`Timer`对象后,你...

    java中timer用法

    不过,标准的调度类 Timer 和 TimerTask 没有足够的灵活性,无法支持通常需要的计划任务类型。在本文中,Java 开发人员 Tom White 向您展示了如何构建一个简单通用的计划框架,以用于执行任意复杂的计划任务。

    Java里timer执行定时任务

    在这种情况下,可以使用Servlet容器提供的定时任务机制来代替标准的 `java.util.Timer` 类。通常做法是在 Servlet 的 `init()` 方法中安排定时任务,这样可以确保任务与 Web 应用程序的生命周期同步。 例如,可以在...

    java Timer 定时每天凌晨1点执行任务

    5. Java中实现定时任务的其他方式:除了使用Timer类外,我们还可以使用其他方式来实现定时任务,如使用Quartz Scheduler、ScheduledExecutorService等。这些方式都可以帮助我们实现定时任务的执行,但它们的使用方式...

    详解JAVA Timer和TimerTask

    "详解JAVA Timer和TimerTask" JAVA Timer和TimerTask是JAVA语言中两种重要的线程设施,用于实现定时执行任务。下面将详细介绍JAVA Timer和TimerTask的概念、用法和优点。 JAVA Timer JAVA Timer是一种线程设施,...

    java定时器timer制作

    Java中定时器(Timer)主要用于执行周期性的任务。通过`java.util.Timer`类,可以创建一个定时器对象,该对象负责调度事件。定时器可以用来执行两种类型的定时任务:一次性任务和周期性任务。 #### 一次性任务 一次...

    Java语言中Timer类的简洁用法.doc

    Java中的`Timer`类和`TimerTask`是用于计划任务执行的重要工具,它们在Java标准版(J2SE)和微型版(J2ME)环境中都有应用。然而,这两个类的功能相对有限,不能满足所有复杂任务调度的需求。例如,它们无法处理因...

Global site tag (gtag.js) - Google Analytics