現在專案中用到需要定時去檢查檔案是否更新的功能。 timer正好用於此處。
用法很簡單,new一個timer,然後寫一個timertask的子類別即可。
程式碼如下:
package comz.autoupdatefile; import java.util.Timer; import java.util.TimerTask; public class M { public static void main(String[] args) { // TODO todo.generated by zoer Timer timer = new Timer(); timer.schedule(new MyTask(), 1000, 2000); } } class MyTask extends TimerTask { @Override public void run() { System.out.println("dddd"); } }
這樣,就可以在1秒鐘之後開始執行mytask,每兩秒鐘執行一次。
當然,timer的功能也可以透過自己建構線程,然後在線程中用sleep來模擬停止一段時間,然後再執行某個動作。
其實,看一下timertask的源碼就立即可以知道,timertask就是實作了runnable介面的。也就是說,透過timer來間隔一段時間執行一個動作,也是透過一個執行緒來做到的。