- 浏览: 158653 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
wcnmbbbb:
com.lowagie.text 对应的包呢?
根据数据库注释自动生成数据库文档【支持Oracle和Mysql】 -
greatwqs:
序列化算法这篇不错 : http://greatwqs.ite ...
Java IO 中对象的序列化操作 -
litao11046:
为什么使用get的时候要把具体的方法名加入hidden作为隐藏 ...
Struts DispatchAction基本的请求分发
Timer是Jdk提供的一个定时器组件,不同于Swing中的Timer,他位于Java.util包中
Timer用后台的一个线程 定时或者重复的执行封装好的任务 任务被封装成TimerTask
TimerTask 是一个实现 Runable 接口的抽象类,把你需要执行的任务继承TimerTask即可
实例代码1. 使用Timer和TimerTask定时执行指定的任务
package jdk.timer.test; import java.util.Date; import java.util.Timer; import java.util.TimerTask; /** * 一个简单的计划任务的例子 * @author Ericzhou * */ public class TestTimer { public static void main(String[] args) { System.out.println(new Date()); at(5); } public static void at(int timeout){ final Timer t = new Timer(); t.schedule(new TimerTask(){ @Override public void run() { System.out.println("time up..."+ new Date()); t.cancel(); //Run方法执行完成之后程序依然不会退出,可以采用cancel方法或者system.exit结束程序 } }, new Date(new Date().getTime()+timeout*1000)); } }
schedule() 方法用于指定timer在何时运行何种任务,他有很多重载的参数形式
可以使用delay或者精确的Date 与实现线程类似,TimerTask的实现类同样要实现run方法
我在这里使用了内部类
需要注意的是,任务执行完成后,线程并不会退出,可以有以下几种方法退出线程:
1.调用Timer的cancel() 方法
2.使用system.exit()方法
3.使timer指向新的引用
实例2.使用Timer重复执行指定任务
package jdk.timer.test; import java.util.Timer; import java.util.TimerTask; /** * @author Ericzhou */ public class TestRecycleTask { public static void main(String[] args) { Timer t = new Timer(); TimerTask task = new TimerTask(){ @Override public void run() { System.out.println("I am running..."); } }; t.schedule(task,0,3*1000); } }
与实例一的区别就在于使用了另外一个schedule方法
public void schedule(TimerTask task, long delay, long period)
在固定延迟执行中,根据前一次执行的实际执行时间来安排每次执行。如果由于任何原因(如垃圾回收或其他后台活动)而延迟了某次执行,则后续执行也将被延迟。从长期来看,执行的频率一般要稍慢于指定周期的倒数(假定 Object.wait(long) 所依靠的系统时钟是准确的)。
固定延迟执行适用于那些需要“平稳”运行的重复活动。换句话说,它适用于在短期运行中保持频率准确要比在长期运行中更为重要的活动。这包括大多数动画任务,如以固定时间间隔闪烁的光标。这还包括为响应人类活动所执行的固定活动,如在按住键时自动重复输入字符。
task
- 所要安排的任务。 delay
- 执行任务前的延迟时间,单位是毫秒。 period
- 执行各后续任务之间的时间间隔,单位是毫秒。 IllegalArgumentException
- 如果 delay 是负数,或者 delay + System.currentTimeMillis() 是负数。 IllegalStateException
- 如果已经安排或取消了任务,已经取消了计时器,或者计时器线程已终止。Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。
一个Timer可以调度任意多个TimerTask,它会将TimerTask存储在一个队列中,顺序调度,如果想两个TimerTask并发执行,则需要创建两个Timer。
发表评论
-
使用Maven构建一个开源项目的代码结构
2017-01-18 12:29 960本文仅适合maven初学者,适合那些像我一样平时不使用mav ... -
Java Des算法实现高速文件加密解密
2016-06-01 15:09 1717import java.io.FileInputStream ... -
Java比较两个数据库中所有表的区别【支持Oracle和SQLServer】
2014-12-09 14:37 5011开发过程中一般是一开发数据库 一生产数据库。 有时候在开发 ... -
根据数据库注释自动生成数据库文档【支持Oracle和Mysql】
2014-11-28 11:02 4161公司项目比较乱,很多时候都是需要先完成项目再准备文档。 数 ... -
根据SVN日志自动生成补丁包[基于Tomcat的JavaEE项目]
2014-11-25 10:08 2402项目开发过程中代码变化很频繁,需要更新文件时,每次都需要手 ... -
用批处理文件为JavaSE项目快速简单的的加载jar包
2014-02-22 10:39 679JavaSE小项目,有时候需要引入很多jar包,但是手动去修 ... -
java中WebService的HelloWorld
2011-11-14 07:24 1687WebService的HelloWorld 首先,在MyEc ... -
Swing中的JOptionPane类
2011-11-14 07:24 1807Swing中的JOptionPane类详解JOptionPan ... -
java输出PDF文档
2011-11-14 07:24 2746PDF输出用到iText包,由于PDF文档的特殊性,有可能需要 ... -
Java生成图片验证码
2011-11-14 07:24 2834Java生成图片验证码部分代码参考自网易博客白云城主的大作制作 ... -
java生成缩略图
2011-11-11 20:12 1090公司一些项目中经常把用户上传的原图用IMG标签改变尺寸后直接在 ... -
java读取和输出Excel
2011-11-11 20:11 1301Excel读取和输入要用到JXL包 输出Excel的代码示例 ... -
ApacheClient模拟浏览器GET和POST请求
2011-11-11 20:04 2115ApacheClient简介HttpClient ... -
Java IO 中对象的序列化操作
2011-06-12 16:54 1167Java IO 中对象的序列化 ... -
ireport和jasperReport生成统计报表的helloworld
2010-08-04 22:51 2705本文只涉及到简单的动态数据传递 首先使用ireport创建模 ... -
使用Java 发送电子邮件
2010-08-04 22:33 1771一个采用sun的类库的java发送邮件的demo 因为使用的 ... -
Java的远程方法调用 RMI 的 HelloWorld 程序
2010-07-29 16:11 1896本文大部分内容来自 http://www.jspcn.net/ ... -
设计模式 之 工厂模式
2010-07-28 21:45 1615常用设计模式之 工厂模 ... -
设计模式 之 单例模式
2010-07-28 21:44 1564单例模式:设计中有时候需要使某个对象在整个系统中只存在一个 ... -
使用递归和dom遍历dom树形结构
2010-07-28 21:39 2609使用递归逆推出xml文件的大体结构 package com. ...
相关推荐
`Timer` 和 `TimerTask` 是Java中用于实现定时任务的重要工具。它们提供了一种简单有效的方式来安排任务的执行,既可以一次性执行也可以周期性地执行。这对于实现定时提醒、定时备份等功能非常有用。 #### 二、...
总结起来,`Timer` 和 `TimerTask` 提供了一种简单的方式在Java中实现定时任务,无论是单次执行还是周期性执行,都能方便地进行调度。但需要注意的是,由于 `Timer` 是基于单线程模型的,如果一个 `TimerTask` 执行...
"详解JAVA Timer和TimerTask" JAVA Timer和TimerTask是JAVA语言中两种重要的线程设施,用于实现定时执行任务。下面将详细介绍JAVA Timer和TimerTask的概念、用法和优点。 JAVA Timer JAVA Timer是一种线程设施,...
本文将深入探讨如何使用Java标准库中的`java.util.Timer`和`java.util.TimerTask`来实现定时任务。 ### 原理详解 在Java中,`java.util.Timer`类提供了调度定时任务的功能,而`java.util.TimerTask`则是执行这些...
在Java编程语言中,`Timer`和`TimerTask`是用于执行定时任务的重要类。这两个类通常被用来处理那些需要在指定时间或周期性执行的任务,比如定时清理缓存、定时更新数据库等场景。 #### Timer简介 `Timer`类是一个...
在本文中,我们将深入探讨`Timer`类的工作原理、常用方法以及如何使用它来创建和管理定时任务。 `Timer`类主要用于计划在将来某个时间点执行的任务,这通常通过`TimerTask`类来实现,`TimerTask`是实现了`Runnable`...
`Timer`类与`TimerTask`类的结合使用为Java开发人员提供了一种简单而强大的方式来管理各种定时任务。通过灵活地使用这两个类,开发者可以根据实际需求定制各种复杂的定时任务逻辑。 总结来说,`java.util.Timer`类...
Java中的`java.util.Timer`类和`java.util.TimerTask`类为我们提供了实现定时任务的能力。这篇文档将深入探讨`Timer`定时任务的相关知识点,并结合实际应用进行解析。 首先,`Timer`类是一个线程类,用于调度任务在...
Java标准库提供了几种不同的方式来实现定时任务的功能,其中最常用的是`java.util.Timer`类与`java.util.TimerTask`类的组合使用。 #### 二、核心概念 1. **Timer类**:它是Java中的定时器类,用于安排和管理定时...
`Timer`类本身不是线程安全的,因此通常建议为每个任务创建一个独立的`Timer`实例。 #### 三、关键概念与方法 1. **`Timer`对象的创建**:通过无参构造函数创建`Timer`对象。 ```java Timer timer = new Timer...
- Java Timer类是位于java.util包下的,它提供了创建和管理定时任务的能力。通过创建一个Timer对象,我们可以安排一系列的任务在未来某个时刻执行。 - Timer类主要提供了两个方法:`schedule(TimerTask task, long...
通过扩展Java的Timer和TimerTask,开发者可以创建一个更强大的计划框架,以应对复杂的定时任务需求。这个框架可能包括自定义的Scheduler类,它可以使用日历算法计算任务的下一次执行时间,确保在各种时间调整条件下...
### Java定时执行任务详解 #### 一、Java定时任务实现方式概述 在Java中实现定时任务的方法有很多,这里主要介绍一种常见的实现方式:利用`java.util.Timer`类来完成定时任务的调度。`Timer`类提供了多种方法来...
总结来说,Java的`Timer`和`TimerTask`提供了灵活的定时执行任务的能力,适用于需要在特定时间或周期性执行某些操作的场景。使用时需根据需求选择合适的调度方法,并确保任务类正确实现`TimerTask`接口。在实际应用...
在Java中,`Timer` 类是Java.util包的一部分,它提供了一种方便的方式来按计划执行任务,这些任务通常称为`TimerTask`。`Timer` 类主要用于创建一个后台线程,该线程负责调度和执行由`TimerTask`对象定义的任务。`...
1. **Java自带的`java.util.Timer`类**:这种实现方式允许用户调度一个`java.util.TimerTask`任务,并使程序能够按某一频度执行。然而,这种方式不支持在指定时间点执行任务的功能,因此在实际应用中并不常用,本文...
- Java中的`java.util.Timer`和`TimerTask`类,用于创建定时任务。 - Quartz库,一个强大且灵活的开源作业调度框架,支持复杂的时间调度。 - Spring框架的`@Scheduled`注解,方便地在Spring Bean中定义定时任务。...
自Java 1.3版本起,Java标准库中引入了`java.util.Timer`和`java.util.TimerTask`两个类,为开发者提供了一套简单有效的时间任务调度方案。这一机制在Java 5.0中得到了进一步的完善和增强。 ##### TimerTask 类解析...
Java中Timer的schedule()方法参数详解 Java中Timer的schedule()方法是Java...Java中Timer的schedule()方法是实现定时任务的重要机制,需要正确地理解和使用schedule()方法的参数和执行结果,以便实现正确的定时任务。