`

Java之Timer入门

    博客分类:
  • Java
阅读更多
参考资料
1 java中timer用法 
http://zhenhu5131420.blog.163.com/blog/static/439143252008412113949167/
2 JAVA TIMER用法学习
http://www.blogjava.net/madshime/archive/2009/05/13/270317.html
java中的java.util.Timer 和 java.util.TimerTask使程序员可以很容易地计划简单的任务.
Timer是一个执行任务的类,TimerTask是一个用户编写的任务类,Timer接受一个TimerTask参数.
Timer有两种执行任务的模式,最常用的是schedule,它可以以两种方式执行任务:1:在某个时间(Data),2:在某个固定的时间之后(int delay).这两种方式都可以指定任务执行的频率.
JDK 5以上,推荐使用scheduleAtFixedRate模式,Timer会尽量让你的Task执行的频率保持一致.

请参见Timer的构造方法与方法摘要

以上图片所显示的方法调用已经说明了如何使用它,下面就上一个小小的示例.
MyTimerTask.java
import java.util.TimerTask;

public class MyTimerTask extends TimerTask {
	
	@Override
	public void run() {
		
		System.out.println("咫尺天涯的第一个任务启动了。。。");			
	}
}

import java.util.Timer;
import java.util.TimerTask;

public class TimerMain {
	
	public static void main(String[] args) {
		
		TimerTask myTimerTask = new MyTimerTask();
		long delay = 1000L;
		long period = 2000L;
		Timer timer = new Timer();
		//timer.schedule(tt,delay,period);
		timer.scheduleAtFixedRate(myTimerTask,delay,period);		
	}
}

控制台日志如下:
咫尺天涯的第一个任务启动了。。。
咫尺天涯的第一个任务启动了。。。
咫尺天涯的第一个任务启动了。。。
咫尺天涯的第一个任务启动了。。。
.................

参见以下相关写法!
//当前时间2秒钟后启动
		/* new Timer().schedule(new TimerTask() {
			
			@Override
			public void run() {
				
				System.out.println("我的第一个定时器启动了。。。");
				
			}
		}, 2000);
		 
		 
		 //当前时间2秒钟后启动,并且之后每间隔1秒钟循环启动
		 new Timer().schedule(new TimerTask() {
				
				@Override
				public void run() {
					
					System.out.println("我的第二个定时器启动了。。。");
					
				}
			}, 2000,1000);*/
		 
		 //循环启动定时器任务
		 class MyTimerTask extends TimerTask{
			 
			 @Override
			public void run() {
				
				 System.out.println("我的第三个定时器启动了。。。");
				 new Timer().schedule(new MyTimerTask(),2000);
				
			}
		 }		 
		 new Timer().schedule(new MyTimerTask(),2000);

另请参见:
java.util.Time结合Spring发送Email
http://liuzidong.iteye.com/blog/1117024
Sprint之java.util.Time
http://liuzidong.iteye.com/blog/1117119
  • 大小: 109.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics