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 @   donleo123  阅读(477)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示