Java定時器(一)Timer和TimerTask
阿新 • • 發佈:2019-02-19
方式一:設定指定任務task在指定時間time執行 schedule(TimerTask task, Date date)
public static void main(String[] args) throws Exception { // TODO Auto-generated method stub new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println("……這裡是邏輯程式碼……"); } }, 5000); while(true){ Thread.sleep(1000); System.out.println(new Date().getSeconds()); } }
此程式碼的結果是5秒後輸出"……這裡是邏輯程式碼……"
方式二:設定指定任務task在指定延遲delay後進行固定延遲peroid的執行 schedule(TimerTask task,long delay,long period)
public static void main(String[] args) throws Exception { // TODO Auto-generated method stub new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println("………這裡是邏輯程式碼………"); } }, 5000,5000); while(true){ Thread.sleep(1000); System.out.println(new Date().getSeconds()); } }
此段程式碼輸出結果為延遲5秒後,每隔5秒輸出"……這裡是邏輯程式碼……"
方式三:設定指定任務task在指定開始時間firstTime開始後進行固定頻率peroid的執行 schedule(TimerTask task,Date firstTime,long period)
public static void main(String[] args) throws Exception { // TODO Auto-generated method stub new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println("……這裡是邏輯程式碼……"); } },new Date(), 5000); while(true){ Thread.sleep(1000); System.out.println(new Date().getSeconds()); } }
這裡的程式碼輸出結果為在當前時間開始後馬上輸出"……這裡是邏輯程式碼……",之後每隔5秒輸出"……這裡是邏輯程式碼……"
Java中的定時器用的更多的往往是spring的註解或Quartz,可參考博文 Java定時器(二)spring註解、Quartz