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);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值