import java.util.timer.* class TimerTaskExample extends TimerTask { public void run() { println new Date() } } int delay = 5000 // delay for 5 sec. int period = 1000 // repeat every sec. Timer timer = new Timer() timer.scheduleAtFixedRate(new TimerTaskExample(), delay, period)
輸出:java
Thu Apr 02 05:54:02 CST 2015 Thu Apr 02 05:54:03 CST 2015 Thu Apr 02 05:54:04 CST 2015 Thu Apr 02 05:54:05 CST 2015 Thu Apr 02 05:54:06 CST 2015 Thu Apr 02 05:54:07 CST 2015 Thu Apr 02 05:54:08 CST 2015 Thu Apr 02 05:54:09 CST 2015 Thu Apr 02 05:54:10 CST 2015 Thu Apr 02 05:54:11 CST 2015 Thu Apr 02 05:54:12 CST 2015
Java 版本:ide
import java.util.Timer; import java.util.Date; class TimerTaskTest extends java.util.TimerTask { @Override public void run() { System.out.println(new Date()); } } public class Test { public static void main(String[] args) { int delay = 5000; // delay for 5 sec. int period = 1000; // repeat every sec. Timer timer = new Timer(); timer.schedule(new TimerTaskTest(), delay, period); } }
關於 Timer 和 TimerTask 的使用說明:code
java.util.Timer timer = new java.util.Timer(true); // true 說明這個timer以daemon方式運行(優先級低, // 程序結束timer也自動結束),注意,javax.swing // 包中也有一個Timer類,若是import中用到swing包, // 要注意名字的衝突。 TimerTask task = new TimerTask() { public void run() { ... //每次須要執行的代碼放到這裏面。 } }; //如下是幾種調度task的方法: timer.schedule(task, time); // time爲Date類型:在指定時間執行一次。 timer.schedule(task, firstTime, period); // firstTime爲Date類型,period爲long // 從firstTime時刻開始,每隔period毫秒執行一次。 timer.schedule(task, delay) // delay 爲long類型:從如今起過delay毫秒執行一次 timer.schedule(task, delay, period) // delay爲long,period爲long:從如今起過delay毫秒之後,每隔period // 毫秒執行一次。
注意:timer.schedule(task, delay, period) 和 timer.scheduleAtFixedRate(task, delay, period) 有所不一樣。io
前者的period是相對於前一次執行時間。然後者的period是嚴格按照第一次執行時間依次類推。class