Timer为定时周期性执行调度性能没有concurrent包下的高,不过原理还是需要了解下的,手续看下使用:
Timer timer = new Timer("Fetch thread"); timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { try { Thread.sleep(10000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("**Fetch thread1 run**" + this.scheduledExecutionTime()); } }, 1000, 10); timer.schedule(new TimerTask() { @Override public void run() { try { Thread.sleep(10000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("**Fetch thread2 run**" + this.scheduledExecutionTime()); } }, 1000, 10);
执行打印结果:
schedule: **Fetch thread2 run**1387522409123 **Fetch thread2 run**1387522419125 **Fetch thread2 run**1387522429126 scheduleAtFixedRate: **Fetch thread1 run**1387522551056 **Fetch thread1 run**1387522551066 **Fetch thread1 run**1387522551076
总结:
schedule方法:在上次执行结束之后开始按某固定的rate执行
scheduleAtFixedRate方法:在上次执行开始时开始按某固定的rate执行,也就是说不关心上次是否执行完成此次执行就已经开始了so要注意并发。
实现原理:
Timer里维护了一个TimerThread,而TimerThread里维护了一个TaskQueue,所有的TimerTask都放在此TaskQueue种,在TimerThread中执行while(ture)通过对TaskQueue的notify wait来实现操作。
相关推荐
所有类型的 Java 应用程序一般都需要计划重复执行的任务。企业应用程序需要计划每日的日志或者晚间...在本文中,Java 开发人员 Tom White 向您展示了如何构建一个简单通用的计划框架,以用于执行任意复杂的计划任务。
在Java编程语言中,`Timer`类和Spring框架的定时任务是两种常见的实现定时执行任务的方式。本篇文章将深入探讨这两个主题,旨在帮助初学者理解它们的工作原理以及如何在实际项目中应用。 首先,让我们来看一下Java...
Java定时器,也被称为`Timer`类,是Java标准库中的一个强大工具,它允许开发者在指定的时间间隔执行任务,从而实现定时操作。这个类在`java.util`包中定义,是实现定时任务调度的核心。在本文中,我们将深入探讨`...
Java Timer定时器是Java语言中的一种常用的定时器机制,它可以帮助开发者实现一些需要在特定时间或特定间隔执行的任务。Java Timer定时器主要是通过java.util.Timer和java.util.TimerTask两个类来实现的。 Java....
总的来说,`Timer`和`TimerTask`是Java中实现简单定时任务的便利工具,但在高并发、高性能的场景下,可能需要考虑使用更强大的调度库,如`Quartz`或`Spring Framework`中的`ScheduledExecutorService`。
通过使用Java的Timer类,你可以轻松地在Java应用程序中实现复杂的定时任务调度,无论是简单的延时执行还是周期性的任务循环。结合ActionListener,你可以灵活地控制定时器触发的事件,从而满足各种需求。在实际项目...
有个简单的java 的例子描述对java的Timer的使用的介绍,与实现的例子,方便大家学习
例如,可以在 `init()` 方法中使用 `Timer` 或者使用 Servlet 容器支持的定时任务机制,如Quartz Scheduler 或 Spring 的 `@Scheduled` 注解。这种方式更适用于企业级应用,因为它能够更好地集成到现有的应用环境中...
Java中的定时器(Timer)是Java.util包下用于执行定期任务的一个类,它与线程(Thread)紧密关联,能够帮助开发者实现定时执行特定任务的需求。这个机制在多线程编程(multithreading)中非常有用,特别是在需要定期...
Java并发编程是Java编程中一个非常重要的方面,java.util.Timer是Java中的一个基本组件,用于实现延时和周期性任务的执行。但是,Timer存在一些缺陷,如创建唯一的线程来执行所有Timer任务,如果一个timer任务的执行...
下面我们将深入探讨`Timer`类及其在Java中的使用: 1. **`Timer`类的基本使用**: `Timer`类主要通过两个方法来调度任务:`schedule(TimerTask task, long delay)`和`schedule(TimerTask task, Date firstTime, ...
通过阅读`TimerTest1.java`和`TimerTest2.java`的代码,你可以进一步了解如何在实际项目中使用`Timer`和`TimerTask`来实现特定的定时任务需求。这两个测试类可能包含了创建`Timer`实例、创建`TimerTask`实例以及调度...
Java中定时器(Timer)主要用于执行周期性的任务。通过`java.util.Timer`类,可以创建一个定时器对象,该对象负责调度事件。定时器可以用来执行两种类型的定时任务:一次性任务和周期性任务。 #### 一次性任务 一次...
Java中的`Timer`类和`TimerTask`是用于计划任务执行的重要工具,它们在Java标准版(J2SE)和微型版(J2ME)环境中都有应用。然而,这两个类的功能相对有限,不能满足所有复杂任务调度的需求。例如,它们无法处理因...
需要注意的是,在实际开发中使用Java Timer时应当小心处理可能出现的异常,例如在解析日期时就可能会遇到ParseException。在多线程环境下,Timer类也是线程安全的,可以由多个线程共享一个Timer实例而不必担心线程...
需要注意的是,`Timer`并不是线程安全的,如果你在一个多线程环境中使用同一个Timer实例来调度任务,可能会遇到意想不到的问题。此外,当主线程结束时,Timer线程可能不会立即停止,导致程序退出前仍有未执行完的...
标题与描述均提到了“Java_Timer定时器实例_Spring实例”,这表明文章主要讨论的是如何在Java中使用Timer类创建定时任务,并将其整合到Spring框架中。以下是对该主题的详细解析: ### Java中的Timer定时器 #### ...
Java中Timer的schedule()方法参数详解 Java中Timer的schedule()方法是Java...Java中Timer的schedule()方法是实现定时任务的重要机制,需要正确地理解和使用schedule()方法的参数和执行结果,以便实现正确的定时任务。
Timer 类在 Java 中是用于调度任务的工具,它允许程序员安排任务在未来某个时间点或者按照一定的周期执行。这个类位于 `java.util` 包下,与之配合使用的还有一个名为 `TimerTask` 的抽象类,它是所有计划任务的基础...
在Java编程语言中,`Timer`和`TimerTask`是两个关键的类,它们用于创建和管理定时任务。`Timer`类提供了一种机制来安排在未来某一特定时间或以固定间隔执行任务,而`TimerTask`是这些任务的实现基础。 `Timer`类是...