示例 Groovy中的 Timer 和 TimerTask

import java.util.timer.*

class TimerTaskExample extends TimerTask {
        public void run() {
        	println new Date()
        }
}

int delay = 5000   // delay for 5 sec.
int period = 1000  // repeat every sec.
Timer timer = new Timer()
timer.scheduleAtFixedRate(new TimerTaskExample(), delay, period)

输出:

Thu Apr 02 05:54:02 CST 2015
Thu Apr 02 05:54:03 CST 2015
Thu Apr 02 05:54:04 CST 2015
Thu Apr 02 05:54:05 CST 2015
Thu Apr 02 05:54:06 CST 2015
Thu Apr 02 05:54:07 CST 2015
Thu Apr 02 05:54:08 CST 2015
Thu Apr 02 05:54:09 CST 2015
Thu Apr 02 05:54:10 CST 2015
Thu Apr 02 05:54:11 CST 2015
Thu Apr 02 05:54:12 CST 2015

Java 版本:

import java.util.Timer;
import java.util.Date;

class TimerTaskTest extends java.util.TimerTask {

	@Override
	public void run() {
		System.out.println(new Date());
	}
}
public class Test {
	public static void main(String[] args) {
		int delay = 5000;   // delay for 5 sec.
		int period = 1000;  // repeat every sec.
		Timer timer = new Timer();
		timer.schedule(new TimerTaskTest(), delay, period);
	}
}

关于 Timer 和 TimerTask 的使用说明:

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 
// 毫秒执行一次。

注意:timer.schedule(task, delay, period) 和 timer.scheduleAtFixedRate(task, delay, period) 有所不同。

前者的period是相对于前一次执行时间。而后者的period是严格按照第一次执行时间依次类推。

时间: 2024-11-05 06:01:38

示例 Groovy中的 Timer 和 TimerTask的相关文章

JDK中的Timer和TimerTask详解

目录结构: Timer和TimerTask 一个Timer调度的例子 如何终止Timer线程 关于cancle方式终止线程 反复执行一个任务 schedule VS. scheduleAtFixedRate 一些注意点 1. Timer和TimerTask Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次. TimerTask是一个实现了Runnable接口的抽象类,代表一个可以被Timer执行的任务. 2.

Java中的Timer和TimerTask在Android中的用法(转)

转自:http://blog.csdn.net/zuolongsnail/article/details/8168689 在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI上的控件需要随着时间改变,我们可以使用Java为我们提供的计时器的工具类,即Timer和TimerTask. Timer是一个普通的类,其中有几个重要的方法:而TimerTask则是一个抽象类,其中有一个抽象方法run(),类似线程中的run()方法,我们使用Timer创建一个他的对象,然后使用这对

Java中的Timer和TimerTask来实现多线程

Timer是一种线程实施,用来安排以后在后台线程中执行的任务,可安排任务执行一次或者定期重复执行,可以看成一个定时器,可以调度TimerTask,TimerTask是一个抽象类,实现了Runnable接口,所以具备多线程的能力. //定义一个线程周期性做某件事 0.2s new Timer.schedule(new TimerTask() { @override public void run(){ //周期性做什么事情 } },0,200); http://www.bdqn.cn/news/2

Java中的Timer和TimerTask在Android中的用法

转自:http://blog.csdn.net/zuolongsnail/article/details/8168689 <html xmlns="http://www.w3.org/1999/xhtml">

JDK中的Timer和TimerTask详解尊昨综做宗椎

http://www.ebay.com/cln/rxp_frjl/2015-01-28/165233238011 http://www.ebay.com/cln/7f1_tzrj/2015-01-28/165058925014 http://www.ebay.com/cln/t3l_lpdv/2015-01-28/165064633012 http://www.ebay.com/cln/rxp_frjl/2015-01-28/165233248011 http://www.ebay.com/cl

Android中支持暂停和恢复的Timer和TimerTask封装

由于Timer和TimerTask类的对象只能用一次,所以如果想多次调度同一样的任务,必须重新实例化. 所以,封装了一个TimerHelper类,测试可用. 1 public abstract class TimerHelper { 2 3 private Timer mTimer = null; 4 5 public void start(long delay, long period) 6 { 7 stop(); 8 9 mTimer = new Timer(); 10 mTimer.sch

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

java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks. 一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerTask一般是以匿名类的方式创建. 一个完整的Timer: Java代码   java.util.Timer timer = new java.util.Timer(true); // true 说明这个timer以daemon方式运行(优先级低, // 程序结束timer也自动结束),注意,java

Java线程:Timer和TimerTask

Timer和TimerTask可以做为实现线程的第三种方式,前两中方式分别是继承自Thread类和实现Runnable接口. Timer是一种线程设施,用于安排以后在后台线程中执行的任务.可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask.TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力. 一个Timer可以调度任意多个TimerTask,它会将TimerTask存储在一个队列中,顺序调度,如果想两个TimerTask并发执行,

多线程之Timer和TimerTask

Timer是一种线程设施,用于安排以后在后台线程中执行的任务.可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask.TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力. 测试代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import java.util.TimerTask;   public class OneTask extends TimerTask{       private int id;