Java核心类库——Timer(定时器)和TimerTask

java

有的时候我们需要每隔一段时间去执行某个任务,在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

回到顶部