Timer中schedule()的用法

timer.schedule(new MyTask(), 0, 60*60*1000);

第一個參數"new MyTask()":

是 TimerTask 類,在包:import java.util.TimerTask .使用者要繼承該類,並實現 public void run() 方法,因爲 TimerTask 類實現了 Runnable 接口。

如:

public class MyTask extends TimerTask {  
    public void run() {  
        System.out.println("任務時間:" + new Date());  
    }  
}  

第二個參數"0"的意思是:(0就表示無延遲)

當你調用該方法後,該方法必然會調用 TimerTask 類 TimerTask 類 中的 run() 方法,這個參數就是這兩者之間的差值,轉換成漢語的意思就是說,用戶調用 schedule() 方法後,要等待這麼長的時間纔可以第一次執行 run() 方法。

第三個參數"60*60*1000"的意思就是:

(單位是毫秒60*60*1000爲一小時)

(單位是毫秒3*60*1000爲三分鐘)

第一次調用之後,從第二次開始每隔多長的時間調用一次 run() 方法

例子:

public class SynServlet extends HttpServlet {
    @Override
    public void init() throws ServletException {
        try {
            Timer timer = new Timer(true);
            timer.schedule(new java.util.TimerTask() {
                public void run() {
                    ContributeSynUtil.ContributeSyn();
                }
            }, 0, 3* 60 * 1000);
        } catch (Exception e) {
            log.error("同步數據失敗", e);
        }
    }

    @Override
    public void destroy() {
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章