Java核心类库——Timer(定时器)和TimerTask
有的时候我们需要每隔一段时间去执行某个任务,在Java中提供了Timer and TimerTask来完成这个任务
Timer(定时器)和TimerTask
Timer和TimerTask的方法很少,使用起来也非常方便。希望如果遇到问题参考一下API doc,里面写的很清楚。TimerTask是个抽象类,他扩展了Object并实现了Runnable接口,因此你必须在自己的Task中实现public void run()方法。这也就是我们需要执行的具体任务。Timer实际上是用来控制Task的,他提供的主要方法是重载的schedule()方法。
如何使用Timer(定时器)和TimerTask?
1) 可以安排自动的计划任务的类,每个任务都是一个线程
2) 创建Timer 实例
3) 为Timer 实例增加计划任务,计划任务是一个接口
4)使用cancel() 清除 timer对象上所有任务计划
例: 1 倒计时,每隔一秒显示一下时间
2 计时结束清楚计时任务
1 import java.util.Calendar;2 import java.util.Date;
3 import java.util.GregorianCalendar;
4 import java.util.Timer;
5 import java.util.TimerTask;
6
7 public class TimerDemo {
8 public static void main(String[] args) {
9 //创建一个定时器
10 final Timer timer = new Timer();
11 //倒计时
12 //从0毫秒开始,每隔1秒钟显示剩余时间,10秒以后结束计时
13 final long end = System.currentTimeMillis() + 1000*10;//end代表计时结束的时刻,10秒以后的时刻
14
15 timer.schedule(new TimerTask(){
16 public void run() {
17 //show 表示剩余时间
18 long show = end-System.currentTimeMillis();
19 long h = show/1000/60/60;//取小时
20 long m = show/1000/60%60;//取不够一个小时的分钟
21 long s = show/1000%60;//取不够一分钟的秒
22 System.out.println(h+":"+m+":"+s);
23 }
24 }, 0, 1000);
25 //到时间后停止
26 timer.schedule(new TimerTask(){
27 public void run() {
28 timer.cancel();
29 }
30 }, new Date(end));
31
32 //闹钟
33 /*//计算出明天早上7:00:00作为开始时间start
34 Calendar cal = new GregorianCalendar();
35 cal.add(Calendar.DAY_OF_YEAR, 1);
36 cal.set(Calendar.HOUR_OF_DAY,7);
37 cal.set(Calendar.MINUTE,0);
38 cal.set(Calendar.SECOND,0);
39 Date start = cal.getTime();
40
41 //计划明天早晨7点开始,间隔24小时,执行计划
42 timer.schedule(new TimerTask(){
43 public void run() {
44 System.out.println("该起床了!");
45 }
46 }, start,1000L*60*60*24);*/
47 }
48 }
以上是 Java核心类库——Timer(定时器)和TimerTask 的全部内容, 来源链接: utcz.com/z/394910.html