springboot @schedule和@Async定时任务的异步 同步 多任务并发

本文介绍了SpringBoot中@Schedule和@Async的使用,详细解析了它们的参数和原理。@Schedule用于定时任务,通过ThreadPoolTaskScheduler实现,而@Async支持异步执行任务,不阻塞主线程。默认情况下,多个@Schedule任务会串行执行,可以通过配置改变线程池大小实现并行。结合@Async可以实现单个任务的异步执行,但多个任务仍然按顺序执行。
摘要由CSDN通过智能技术生成

@schedule

@schedule注解参数有如下

       * cron:cron表达式,指定任务在特定时间执行;
       * fixedDelay:表示上一次任务执行完成后多久再次执行,参数类型为long,单位ms;
       * fixedDelayString:与fixedDelay含义一样,只是参数类型变为String;
       * fixedRate:表示按一定的频率执行任务,参数类型为long,单位ms;
       * fixedRateString: 与fixedRate的含义一样,只是将参数类型变为String;
       * initialDelay:表示延迟多久再第一次执行任务,参数类型为long,单位ms;
       * initialDelayString:与initialDelay的含义一样,只是将参数类型变为String;

Delay的Rate区别在于Delay是任务完成之后多久执行, Rate是任务开始之后多久执行,一个是按完成时间计时 一个是按开始时间计时

@schedule原理

@schedule底层使用的是spring的任务调度线程池ThreadPoolTaskScheduler,ThreadPoolTaskScheduler底层使用的为JDK自带的ScheduledExecutorService(其实现类为ScheduledThreadPoolExecutor)

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值