1 package com.cn.donleo.thread.timer;
2
3 import java.util.Timer;
4 import java.util.TimerTask;
5 import java.util.concurrent.ScheduledExecutorService;
6
7 /**
8 * @author liangd
9 * date 2020-11-02 11:10
10 * code 定时器测试类
11 */
12 public class TestTimer {
13 public static void main(String[] args) {
14 myTimer();
15 }
16
17 private static void myTimer() {
18 //将a改为引用对象,在run方法改变其值
19 final int[] a = {0};
20 //可以换用ScheduledExecutorService代替Timer
21 //多线程并行处理定时任务时,Timer运行多 个TimeTask时,只要其中之一没有捕获抛出的异常,
22 //其它任务便会自动终止运行,使用ScheduledExecutorService则没有这个问题。
23 Timer timer = new Timer() {
24 };
25 timer.schedule(new TimerTask() {
26 @Override
27 public void run() {
28 System.out.println(a[0]++);
29 if (a[0] == 6) {
30 System.out.println("定时器取消");
31 timer.cancel();
32 }
33 }
34 //延时4s,间隔2s再执行一次
35 }, 4000, 2000);
36 }
37 }