`
BatiTan
  • 浏览: 134961 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

定时任务:Java中Timer和TimerTask的使用

阅读更多
java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks。
一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerTask一般是以匿名类的方式创建。

一个完整的Timer:
java.util.Timer timer = new java.util.Timer(true); 
// true 说明这个timer以daemon方式运行(优先级低, 
// 程序结束timer也自动结束),注意,javax.swing 
// 包中也有一个Timer类,如果import中用到swing包, 
// 要注意名字的冲突。 

TimerTask task = new TimerTask() { 
public void run() { 
... //每次需要执行的代码放到这里面。 
} 
}; 

//以下是几种调度task的方法: 

timer.schedule(task, time); 
// time为Date类型:在指定时间执行一次。 

timer.schedule(task, firstTime, period); 
// firstTime为Date类型,period为long 
// 从firstTime时刻开始,每隔period毫秒执行一次。 

timer.schedule(task, delay) 
// delay 为long类型:从现在起过delay毫秒执行一次 

timer.schedule(task, delay, period) 
// delay为long,period为long:从现在起过delay毫秒以后,每隔period 
// 毫秒执行一次。

  
   

下面是一个完整的例子,由两个类组成,一个定制任务,一个调用java.util.Timer

定制任务:
import java.util.Timer;

public class TimerTaskTest extends java.util.TimerTask{

@Override
public void run() {
   // TODO Auto-generated method stub
   System.out.println("start");
}
}

2.调用java.util.Timer
import java.util.Timer;

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


根据上面的介绍,便可以在1秒后,每隔2秒执行一次程序



分享到:
评论
5 楼 xunux 2016-06-21  
解释得有点问题,schedule 是 前一个任务结束时间跟后一个启动时间相隔 period 时间间隔,
而 scheduleAtFixedRate 是 任务开始时间间隔 period , 定时执行,前一个未结束不影响后一个触发执行。

/**In fixed-delay execution, each execution is scheduled relative to
     * the actual execution time of the previous execution.  If an execution
     * is delayed for any reason (such as garbage collection or other
     * background activity), subsequent executions will be delayed as well 
*/
java.util.Timer.schedule(TimerTask task, long delay, long period);

/** In fixed-rate execution, each execution is scheduled relative to the
  * scheduled execution time of the initial execution. 
*/
java.util.Timer.scheduleAtFixedRate(TimerTask task, long delay, long period);

4 楼 memoryisking 2015-04-02  
例子不错,但是讲解的有点简单了,推荐这篇文章讲解的更详细一点: Timer和TimeTask简介
3 楼 leonreturn 2014-11-21  
2 楼 itxiaozhu 2011-06-17  
很好,不错的例子。。谢谢。。
1 楼 azhqiang 2010-09-01  
不错,刚好用到,看了这个例子。

相关推荐

    Timer和TimerTask的使用

    `Timer` 和 `TimerTask` 是Java中用于实现定时任务的重要工具。它们提供了一种简单有效的方式来安排任务的执行,既可以一次性执行也可以周期性地执行。这对于实现定时提醒、定时备份等功能非常有用。 #### 二、...

    Java中的Timer和TimerTask的使用.doc

    在Java编程语言中,`Timer`和`TimerTask`是两个关键的类,它们用于创建和管理定时任务。`Timer`类提供了一种机制来安排在未来某一特定时间或以固定间隔执行任务,而`TimerTask`是这些任务的实现基础。 `Timer`类是...

    java类Timer和TimerTask的使用.pdf

    Java中的`Timer`和`TimerTask`类是用于创建和管理定时任务的工具,它们提供了在特定时间点或按照预设间隔执行任务的功能。这两个类是Java标准库`java.util`包的一部分,对于需要定时执行操作的应用场景非常有用。 `...

    java定时任务,每天定时执行任务

    Java 定时任务是指在 Java 语言中实现的定时执行任务的机制,通过使用 Timer 和 TimerTask 两个类,可以实现定时执行任务的功能。在这个例子中,我们将实现每天定时执行任务的功能,具体来说,就是在每天的凌晨 2 点...

    Web中使用Timer和TimerTask定时获取数据。

    Java中的`java.util.Timer`和`java.util.TimerTask`类提供了这样的功能,让我们能够在程序中实现定时任务。本文将深入探讨这两个类的工作原理和如何在Web环境中使用它们。 `Timer`类是Java的一个调度工具,它允许...

    几种定时任务(Timer、TimerTask、ScheduledFuture)的退出—结合真实案例【JAVA并发】.docx

    在Java编程中,定时任务是常见且重要的功能,特别是在服务器端和移动端的开发中。本文将结合实际案例探讨如何使用Timer、TimerTask以及ScheduledFuture来实现定时任务,并着重讲解它们的退出机制。 首先,我们来看...

    Java定时任务:利用java Timer类实现定时执行任务的功能

    【Java定时任务:利用java Timer类实现定时执行任务的功能】 在Java编程中,有时我们...通过理解`Timer`和`TimerTask`的工作原理以及它们的方法,开发者可以有效地在Java应用程序中实现定时任务,满足各种定时需求。

    JavaTimer和TimerTask实例教程Java开发

    在Java开发中,`Timer`和`TimerTask`是基础的定时任务工具,对于实现简单的定时功能非常实用。然而,在大型项目或高性能需求的场景下,`ScheduledExecutorService`通常更受青睐,因为它提供了更多的控制和灵活性。...

    JAVA定时器之Timer+TimerTask

    在Java编程语言中,`Timer`和`TimerTask`是两个关键类,它们构成了Java的定时执行机制。这两个类在处理周期性任务或者延迟任务时非常有用,它们可以帮助开发者实现程序在特定时间点或者按照一定间隔执行特定操作的...

    Java 中Timer和TimerTask 定时器和定时任务使用的例子

    Java 中Timer和TimerTask 定时器和定时任务使用的例子 Timer 和 TimerTask 是 Java 中两个重要的类,用于实现定时器和定时任务。 Timer 类是用来执行任务的类,它接受一个 TimerTask 做参数。 Timer 有两种执行任务...

    java定时任务Timer和TimerTask使用详解

    总结起来,`Timer` 和 `TimerTask` 提供了一种简单的方式在Java中实现定时任务,无论是单次执行还是周期性执行,都能方便地进行调度。但需要注意的是,由于 `Timer` 是基于单线程模型的,如果一个 `TimerTask` 执行...

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

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

    TimerTask执行每日定时任务

    在Java编程语言中,`TimerTask`和`Timer`是两个关键类,它们用于实现定时任务的调度。这两个类属于`java.util`包,为开发者提供了执行周期性或一次性任务的能力。下面我们将深入探讨如何利用`TimerTask`执行每日定时...

    使用Timer和TimerTask实现周期任务

    总之,`Timer` 和 `TimerTask` 是 Java 中用于实现周期任务的基础工具,但它们有一定的局限性。在实际开发中,根据项目需求和性能要求,可以考虑使用更高级的并发工具,如 `ScheduledExecutorService`,以获得更好的...

    java轻松实现—定时任务

    在Java中,我们可以利用`java.util.Timer`类和`java.util.TimerTask`类来实现简单的定时任务,但这种实现方式存在线程安全问题。在Web应用中,我们可以利用Servlet容器提供的特性来更优雅地处理定时任务,这就是描述...

    详解JAVA Timer和TimerTask

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

    Java里timer执行定时任务

    在Java中,`java.util.Timer` 类提供了创建和管理定时任务的功能。如果需要在特定时间之后执行某个任务,可以利用 `Timer` 类的 `schedule()` 方法。此方法接受一个实现了 `TimerTask` 接口的实例以及一个表示延迟...

    java定时任务

    Java 定时任务是指在 Java 应用程序中使用 Timer 和 TimerTask 来执行定时任务的机制。通过使用 Java 定时任务,可以在指定的时间点执行特定的任务,从而实现自动化处理和批处理等功能。 在 Java 中,定时任务一般...

    TimerTask与Timer设计时间监控

    在Java编程语言中,`TimerTask`和`Timer`是两个关键类,它们用于实现定时任务和调度。这两个类在处理需要定期执行的任务时非常有用,例如数据刷新、任务调度或者周期性的系统检查等。本篇文章将深入探讨`TimerTask`...

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

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

Global site tag (gtag.js) - Google Analytics