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。

相关推荐
Hui Baby16 分钟前
java抠图
java·开发语言
许彰午31 分钟前
# 手写一个迷你Tomcat——三步理解Servlet容器的核心原理
java·servlet·tomcat
一诺加油鸭2 小时前
若依后端系统集成 Swagger 接口文档功能
java·开发语言
云烟成雨TD2 小时前
Spring AI Alibaba 1.x 系列【40】多智能体核心模式 - 智能体作为工具(Agent as Tool)
java·人工智能·spring
测试员周周2 小时前
【踩坑系列3】飞书机器人集体“失联“?3 个 Gateway 进程让我差点崩溃!一个测试老兵的排查实录
java·python
aq55356002 小时前
Laravel9.x新特性全解析
java·开发语言·数据库
亦暖筑序2 小时前
AI 客服系统升级实战:多 Agent 路由 + 多轮记忆 + 敏感词过滤
java·后端
zhangzeyuaaa2 小时前
深入理解 Python GIL:从机制到释放时机
java·网络·python
河阿里3 小时前
Spring AOP:企业级实战教学
java·后端·spring
lagrahhn3 小时前
IDEA一些提效的方法
java·ide·intellij-idea