03 Timer

package com.zz.timer;

import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class MyTimer {
    // 用於交替執行爆炸(0:2s、 1:4s)
    private static int var = 0;

    public static void main(String[] args) {
        // 2s、4s交替執行
        new MyTimer().scheduleByAlternate();
        /** 打印結果 :
         * 49s : bomb bomb!!
         * 53s : bomb bomb!!
         * 55s : bomb bomb!!
         * 59s : bomb bomb!!
         * 1s : bomb bomb!!
         * 5s : bomb bomb!!
         */
    }

    /**
     * 2 秒、4 秒交替執行
     */
    public void scheduleByAlternate() {
        class MyTimerTask extends TimerTask {
            @SuppressWarnings("deprecation")
            @Override
            public void run() {
                var = (var + 1) % 2;
                System.out.println(new Date().getSeconds() + "s : bomb bomb!!");
                new Timer().schedule(new MyTimerTask(), 2000 + 2000 * var);
            }
        }
        // 2s/4s交替執行
        new Timer().schedule(new MyTimerTask(), 2000);
    }

    /**
     * 5 秒後執行爆炸任務
     */
    public void scheduleBy5s() {
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("bomb bomb bomb");
            }
        }, 5000);
    }

    /**
     * 5 秒後執行爆炸任務,之後每隔5秒繼續執行爆炸任務
     */
    public void scheduleBy5sCycle() {
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("bomb bomb bomb ! ! !");
            }
        }, 5000, 5000);
    }
}
發佈了59 篇原創文章 · 獲贊 7 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章