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
}
}
}
定时器的简单实现
猜你喜欢
转载自blog.csdn.net/rushrush1/article/details/104882194
今日推荐
周排行