一,默认行为,全部定时任务使用同一个线程执行

SpringBoot 多线程执行定时任务实验
SpringBoot 多线程执行定时任务实验
可以看出定时任务2只能在定时任务1结束之后才开始,因为所有的定时任务使用同一个线程执行

二,实现SchedulingConfigurer接口,不同定时任务使用不同线程执行

SpringBoot 多线程执行定时任务实验
SpringBoot 多线程执行定时任务实验
结果是定时任务2每秒都会执行一次,不用等定时任务1了,但是还有不足的地方,定时任务1如果未执行结束,无法进行下一次定时任务1,原因是只有一个线程执行定时任务1

三,注册TaskScheduler实例,使用@EnableAsync,@Async注解,相同定时任务可以使用不同线程

SpringBoot 多线程执行定时任务实验
SpringBoot 多线程执行定时任务实验
结果是定时任务1每经过一秒钟执行一次,不需要等待上一次执行结束

相关文章:

  • 2022-02-06
  • 2022-12-23
  • 2022-12-23
  • 2021-10-18
  • 2022-12-23
  • 2022-12-23
  • 2021-07-19
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-04
相关资源
相似解决方案