JAVA定时器
				
									
					
					
						|  | 
							Ccoffee 2013年3月11日 9:38
								本文热度 6041 | 
					
				 
				
今天我们讲一下JAVA计时器的做法,很简单,网络上已经有不计其数。还是贴了出来!
java 定时器可以用作,定时刷新缓存等。。。。。。。。。。。
timer.schedule(task, firstTime, period);
task参数是,TimerTask 类,在包:import java.util.TimerTask .使用者要继承该类,并实现 public void run() 方法,因为 TimerTask 类 实现了 Runnable 接口。
firstTime参数是,当你调用该方法后,该方法必然会调用 TimerTask 类 TimerTask 类 中的 run() 方法,这个参数就是这两者之间的差值,转换成汉语的意思就是说,用户调用 schedule() 方法后,要等待这么长的时间才可以第一次执行 run() 方法。
period参数是,第一次调用之后,从第二次开始每隔多长的时间调用一次 run() 方法。
 
schedule和scheduleAtFixedRate的区别在于,如果指定开始执行的时间在当前系统运行时间之前,scheduleAtFixedRate会把已经过去的时间也作为周期执行,而schedule不会把过去的时间算上。
schedule 
 import java.util.Timer;import java.util.TimerTask;
 public class TestTimer {
 
 static Timer timer = null;
 public static void main(String[] args) {
 timer = new Timer();
 System.out.println("-----------定时间器已经启动。。。。。。");
 timer.schedule(new TimerTask() {
 @Override
 public void run() {
 System.out.println("运行我了哦!!!");
 }
 }, 0, 5*1000);
 }
 }
 | 
         scheduleAtFixedRate
 import java.text.ParseException;import java.text.SimpleDateFormat;
 import java.util.Date;
 
 import java.util.Timer;import java.util.TimerTask;
 public class TestTimer {
 
     public static void main(String[] args) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
 try {
 Date datetime = sdf .parse("2007/07/31 23:59:00");
 timer = new Timer();
 System.out.println("-----------定时间器已经启动。。。。。。");
 timer.scheduleAtFixedRate(new TimerTask() {
 @Override
 public void run() {
 System.out.println("scheduleAtFixedRate -----test");
 }
 }, datetime , 5*1000);
 } catch (ParseException e) {
 e.printStackTrace();
 }
 }
 | 
运行结果自己试试便知!嘿嘿! 
该文章在 2013/3/11 9:38:19 编辑过