JAVA定时器
|
Ccoffee
2013年3月11日 9:38
本文热度 4558
|
今天我们讲一下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 编辑过