ScheduledExecutorService类作用

ScheduledExecutorService 是 Java 线程池调度工具类 ,核心作用:执行延迟任务 / 周期性定时任务 ,比 Timer 更强大、更安全。

1. 核心作用

  1. 延迟执行任务(多久后执行一次)
  2. 周期性执行任务(每隔多久执行一次)
  3. 线程池管理:复用线程、控制并发数、避免频繁创建销毁线程
  4. java.util.Timer 更稳定:
    • Timer 单线程,一个任务异常全部挂掉
    • ScheduledExecutorService 多线程,任务隔离,不会相互影响

2. 常用 4 个方法

  • schedule(Runnable, delay, unit)

    延迟 delay 后执行一次

  • scheduleAtFixedRate(command, initialDelay, period, unit)

    固定频率执行:以上一次开始时间计算周期。

  • scheduleWithFixedDelay(command, initialDelay, delay, unit)

    固定间隔执行:以上一次结束时间计算下一次开始。

  • shutdown() / shutdownNow()

    关闭调度线程池。

3. 典型使用场景

  • 延时任务:订单超时未支付自动取消
  • 周期性任务:定时同步数据、清理过期缓存
  • 异步重试:接口调用失败延迟重试

4. 一句话面试回答

ScheduledExecutorService 是 Java 提供的定时调度线程池,用于执行延迟任务和周期性任务,具备线程复用、多线程隔离、高可靠性,替代传统 Timer。

相关推荐
学长毕业设计4 小时前
基于SpringBoot的公益基金管理系统(源码+文档+讲解视频)
java·spring boot·后端
东小西4 小时前
【SAA实战】第 3 篇 · 工具调用全攻略:把业务能力交给 Agent 自己调度
java·后端·spring
东小西4 小时前
【SAA实战】第 4 篇 · Agent 短期记忆:saver 让 Agent 跨轮记得住(threadId 隔离)
java·后端·spring
许彰午4 小时前
22-DataCenter报文序列化
java·低代码·架构·状态模式
2601_962065255 小时前
[MySQL] SQL优化之性能分析
java·sql·mysql
小范同学_5 小时前
JDK1.7 与 JDK1.8 HashMap 底层原理对比 + 数组并发扩容死循环详解
java·开发语言
予昊6 小时前
从零实现“在线五子棋对战“:WebSocket 实时通信 + 段位匹配
java·开发语言·网络·websocket
2601_962203516 小时前
【SpringAI入门】初识SpringAI
java
weixin_461408586 小时前
Mybatis-flex小记
java·开发语言·mybatis
2601_962177137 小时前
【MySQL篇】聚合查询,联合查询
android·java·mysql