Java中的Timer和TimerTask的用法

转载 2015年11月21日 01:12:40

Timer是一个普通的类,其中有几个重要的方法;而TimerTask则是一个抽象类,其中有一个抽象方法run(),类型线程中的run()方法。我们使用Timer创建一个他的对象,然后使用这对象的schedule方法来完成这种间隔的操作。schedule方法有三个参数,其中第一个参数就是TimerTask类型的对象,我们实现TimerTask的run()方法就是要周期执行的一个任务;第二个参数有两种类型,第一种是long类型,表示多长时间后开始执行,另一种是Date类型,表示从那个时间后开始执行;而第三个参数就是执行的周期,为long类型。schedule方法还有一种两个参数的执行重载,第一个参数仍然是TimerTask,第二个表示为long的形式表示多长时间后执行一次,为Date就表示某个时间后执行一次。

需要注意的是Timer就是一个线程,使用schedule方法完成对TimerTask的调度,多个TimerTask可以共用一个Timer,也就是说Timer对象调用一次schedule方法就是创建了一个线程,并且调用一次schedule后TimerTask是无限制的循环下去的,使用Timer的cancel()停止操作。当然同一个Timer执行一次cancel()方法后,所有Timer线程都被终止。

下面是示列代码:

<span style="font-size:18px;"> 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  
// 毫秒执行一次。 
 
完整的示例代码:
1、定制任务:

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); 
     } 
 } </span>


以上代码表示1秒后开始每个2秒钟执行一次TimerTaskTest中的run()方法。

java定时任务类Timer和TimerTask用法详解

原文:java定时任务类Timer和TimerTask用法详解 代码下载地址:http://www.zuidaima.com/share/1550463277550592.htm java定时任...

java定时任务类Timer和TimerTask用法详解

java定时任务类Timer和TimerTask用法详解 代码下载地址:http://www.zuidaima.com/share/1550463277550592.htm...

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

这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需求  Timer类是用来执行任务的类,它接受一个TimerTask做参数  Timer有两种执行任务的模式,最常用的是sche...

Java多线程2-线程协作、Timer和TimerTask

http://blog.csdn.net/undoner/article/details/8139178  线程协作        生产者/消费者模式是一个经典的线程同步以...

Java多线程总结(3)— Timer 和 TimerTask深入分析

1. 基本概念  java.util.Timer:是一个实用工具类,该类用来调度一个线程(schedule a thread),使它可以在将来某一时刻执行。 Java的Timer类可以调度一个任务运行...
  • Mark_LQ
  • Mark_LQ
  • 2015年12月15日 22:31
  • 2662

java中定时器Timer/TimerTask的使用方法

第一种方法:schedule(TimerTask task, long delay) 设定指定任务task在指定延迟delay后执行 第二种方法:schedule(TimerTask task, lo...

Java—Timer和TimerTask详解(常用API)

以下内容根据 The JavaTM Tutorial 和相关API doc翻译整理,以供日后参考: 1.概览 Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行...

【Java】利用Timer与TimerTask定时执行任务

在Java里面定时执行一条任务多用于线程与进程配合Thread.currentThread().sleep(XXX);来实现,但是一些小型的任务其实完全利用Timer与TimerTask定时执行,Ti...

java定时任务Timer和TimerTask使用

timer和timertask是jdk自带的定时任务实现,无需导入第三方jar包来完成 1、指定多久之后执行此任务,注意:只会执行一次public class TimerTest { Tim...

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

java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks。 一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,Time...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中的Timer和TimerTask的用法
举报原因:
原因补充:

(最多只允许输入30个字)