当前位置: 首页 > article >正文

Java开发之定时器学习

面试

一、线程池实现定时器

核心代码:

    public static void main(String[] args) {ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(5);Runnable runnable = () -> System.out.println("当前线程=="+Thread.currentThread().getName());// 延时1秒,每2秒执行一次scheduledExecutorService.scheduleAtFixedRate(runnable,1,2, TimeUnit.SECONDS);scheduledExecutorService.scheduleWithFixedDelay(runnable,1,2,TimeUnit.SECONDS);}

控制台输出
在这里插入图片描述

scheduleAtFixedRate和scheduleWithFixedDelay都是延时按固定频率执行任务,区别就在于前者是严格按照固定频率执行,不管上一个任务有没有执行完毕,后者是在前一个任务执行完成后再加上固定频率来执行,这样就不会出现两个或多个任务同时执行的情况,这在实际业务中要根据具体场景来选择合适的实现方法

二、@Scheduled注解

在spring boot项目中优先使用此方式,支持cron表达式,代码简洁明了
注意类的两个注解不能忘

@Component
@EnableScheduling
public class TestSchedule {// 延时2秒,每5秒执行一次@Scheduled(fixedRate = 5000,initialDelay = 2000)public void executeRate(){System.out.println("5秒一次,固定频率=="+Thread.currentThread().getName());}// 在每天16:14分定点执行一次@Scheduled(cron = "0 14 16 * * *")public void executeCron(){System.out.println("定点执行=="+Thread.currentThread().getName());}
}

控制台输出如下
在这里插入图片描述
至于其他实现方式,比如Timer和TimerTask,已经不建议使用

http://www.lryc.cn/news/2397468.html

相关文章:

  • HealthBench医疗AI评估基准:技术路径与核心价值深度分析(上)
  • Windows+VSCode搭建小智(xiaozhi)开发环境
  • VueScan Pro v9.8.45.08 一款图像扫描软件,中文绿色便携版
  • FreeRTOS通俗理解指南:基础概念 + 架构+ 内核组件+练手实验
  • Python后端开发实战:从0到1搭建高可用API服务
  • 房屋租赁系统 Java+Vue.js+SpringBoot,包括房屋信息、看房申请、租赁合同、房屋报修、收租信息、维修数据、租客管理、公告管理模块
  • 4、ubuntu系统 | 文本和目录操作函数
  • docker部署ELK,ES开启安全认证
  • ASP.NET MVC添加视图示例
  • 自动驾驶中的路径跟踪:Python实现与技术解析
  • 前端面试题目-高频问题集合
  • MyBatis源码解析:从 Mapper 接口到 SQL 执行的完整链路
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Form Wave(表单label波动效果)
  • 双目相机深度的误差分析(基线长度和相机焦距的选择)
  • Pytorch Geometric官方例程pytorch_geometric/examples/link_pred.py环境安装教程及图数据集制作
  • React---day6、7
  • hook组件-useEffect、useRef
  • 功能结构整理
  • 企业级开发中的 maven-mvnd 应用实践
  • yolov12毕设前置知识准备 1
  • 随机游动算法解决kSAT问题
  • 《Discuz! X3.5开发从入门到生态共建》第1章 Discuz! 的前世今生-优雅草卓伊凡
  • azure web app创建分步指南系列之一
  • PyTorch实战——基于生成对抗网络生成服饰图像
  • 笔试强训:Day6
  • 【Hexo】4.Hexo 博客文章进行加密
  • Android --- ObjectAnimator 和 TranslateAnimation有什么区别
  • 小白的进阶之路系列之四----人工智能从初步到精通pytorch自定义数据集下
  • 安卓添加设备节点权限和selinux访问权限
  • 谷歌Stitch:AI赋能UI设计,免费高效新利器