Java定时器:Timer

Posted 王晓东

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java定时器:Timer相关的知识,希望对你有一定的参考价值。

1. schedule(TimerTask task, Date time):在指定Date日期,开始执行TimerTask里的run方法
2. schedule(TimerTask task, long delay):延迟一段时间后,开始执行TimerTask里的run方法

3. schedule(TimerTask task, long delay, long period):延迟一段时间后,开始执行TimerTask里的run方法,并每隔period秒后,重复执行run方法



1 和 2 实例:
package com.timer;

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

public class Run1 {

	private static Timer timer = new Timer();
	
	/*
	 * TimerTask 的实现类,并重写run()方法
	 */
	static public class MyTask extends TimerTask{

		@Override
		public void run() {
			System.out.println("运行了!时间为:" + new Date());
		}
	}
	
	public static void main(String[] args) {
		try{
			MyTask task = new MyTask();
			
//			timer.schedule(task, 5000);		//延迟5秒后,开始执行task里的run()方法
			
			timer.schedule(task, 5000, 2000);	//延迟5秒后,开始执行task里的run()方法,并在后面每隔两秒重复执行run()方法
			
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}
	
}

  

3 实例:

package com.timer;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class Run1 {

	private static Timer timer = new Timer();
	
	/*
	 * TimerTask 的实现类,并重写run()方法
	 */
	static public class MyTask extends TimerTask{

		@Override
		public void run() {
			System.out.println("运行了!时间为:" + new Date());
		}
	}
	
	public static void main(String[] args) {
		try{
			MyTask task = new MyTask();
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			String dateString = "2017-10-17 9:45:00";
			Date dateRef = sdf.parse(dateString);
			System.out.println("字符串时间:" + dateRef.toLocaleString() + "  当前时间:" + new Date().toLocaleString());
			timer.schedule(task, dateRef);	//在指定日期,开始执行run()方法,指定日期要比你现在的系统时间晚
			
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}
	
}

 运行效果

字符串时间:2017-10-17 9:45:00  当前时间:2017-10-17 9:44:33
运行了!时间为:Tue Oct 17 09:45:00 CST 2017

 





以上是关于Java定时器:Timer的主要内容,如果未能解决你的问题,请参考以下文章

场景应用:如何在SpringBoot框架下实现一个定时任务?

很急,java定时器问题,出错?

java定时器 限制方法调用次数

java 定时器cancel之后要重启怎么解决

在java中如何让定时器只启动一次?

java定时器 每天凌晨 固定执行一个方法