1. 程式人生 > >Java定時器(一)Timer和TimerTask

Java定時器(一)Timer和TimerTask

方式一:設定指定任務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