Java多线程定时器(Timer)

 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 }

 

posted @ 2020-12-01 18:28  donleo123  阅读(473)  评论(0编辑  收藏  举报