定时器的简单实现

import java.util.concurrent.TimeUnit;

public class SimpleTimer {
    interface SimpleTimerTask { //接口一个
        void run();
    }
 //定义一个类继承接口
 static class MyTask implements SimpleTimerTask {//重写接口的run,让他显示个10秒之后
        @Override
        public void run() {
            System.out.println("10 秒之后");
        }
    }



 //线程类,其中属性有时间长度,和一个显示“10秒后"的类的对象
    static class Worker extends Thread {
        long delay;
        SimpleTimerTask task;

        Worker(SimpleTimerTask task, long delay) {
            this.task = task;
            this.delay = delay;
        }

        @Override
        public void run() { //线程的运行方式,等delay秒,再让“10秒”的对象启动
            try {
                Thread.sleep(delay);
                task.run();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
// SimpleTimer的方法,new一个线程,传入一个接口类的对象和时间。
    void schedule(SimpleTimerTask task, long delay) {
        Worker worker = new Worker(task, delay);
        worker.start();
    }

   

    public static void main(String[] args) throws InterruptedException {
        SimpleTimer timer = new SimpleTimer();//new一个大类对象用来调方法
        MyTask task = new MyTask();//new一个会显示十秒后的对象
        timer.schedule(task, 10 * 1000);//调方法,让上边的对象真的在十秒后显示十秒后。

        int i = 0;
        while (true) {
            System.out.println(i++);
            TimeUnit.SECONDS.sleep(1); //一秒显示一次i
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值