java定時(迴圈)執行一個方法
阿新 • • 發佈:2018-12-10
java中設定定時任務用Timer類可以實現。 一、延時執行 首先,我們定義一個類,給它取個名字叫TimeTask,我們的定時任務,就在這個類的main函式裡執行。程式碼如下:
1 package test; 2 import java.util.Timer; 3 public class TimeTest{ 4 public static void main(String[] args){ 5 Timer timer = new Timer(); 6 timer.schedule(new Task(), 30 * 1000); 7 } 8 }
解釋一下上面的程式碼。 上面的程式碼實現了這樣一個功能,當TimeTest程式啟動以後,過30秒後執行某項任務。很簡單吧:先new一個Timer物件,然後呼叫它的schedule方法,這個方法有四個過載的方法,這裡我們用其中一個, public void schedule(TimerTask task,long delay) 首先,第一個引數 第一個引數就是我們要執行的任務。 這是一個TimerTask物件,確切點說是一個實現TimerTask的類的物件,因為TimerTask是個抽象類。上面的程式碼裡面,Task就是我們自己定義的實現了TimerTask的類,因為是在同一個包裡面,所以沒有顯性的import進來。Task類的程式碼如下
package test; import java.util.TimerTask; public class Task extends TimerTask { public void run(){ System.out.println("定時任務執行"); } }
我們的Task必須實現TimerTask的方法run,要執行的任務就在這個run方法裡面,這裡,我們只讓它往控制檯打一行字。 第二個引數 第二個引數是一個long型的值。這是延遲的時間,就是從程式開始以後,再過多少時間來執行定時任務。這個long型的值是毫秒數,所以前面我們的程式裡面,過一分鐘後執行用的引數值就是 60 * 1000。 二、迴圈執行