今天我們講一下JAVA計時器的做法,很簡單,網絡上已經有不計其數。還是貼了出來!
java 定時器可以用作,定時刷新緩存等。。。。。。。。。。。
timer.schedule(task, firstTime, period);
task參數是,TimerTask 類,在包:import java.util.TimerTask .使用者要繼承該類,并實現(xiàn) public void run() 方法,因為 TimerTask 類 實現(xiàn)了 Runnable 接口。
firstTime參數是,當你調用該方法后,該方法必然會調用 TimerTask 類 TimerTask 類 中的 run() 方法,這個參數就是這兩者之間的差值,轉換成漢語的意思就是說,用戶調用 schedule() 方法后,要等待這么長的時間才可以第一次執(zhí)行 run() 方法。
period參數是,第一次調用之后,從第二次開始每隔多長的時間調用一次 run() 方法。
schedule和scheduleAtFixedRate的區(qū)別在于,如果指定開始執(zhí)行的時間在當前系統(tǒng)運行時間之前,scheduleAtFixedRate會把已經過去的時間也作為周期執(zhí)行,而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 編輯過