我终于会写 Java 的定时任务了!( 六 )

控制台输出:
2022-10-25 15:04:05.833INFO 15604 --- [task-1] cn.god23bin.demo.task.TaskDemo: 任务A开始------- 2022-10-25T15:04:05.8332022-10-25 15:04:05.833INFO 15604 --- [task-2] cn.god23bin.demo.task.TaskDemo: 任务B开始------- 2022-10-25T15:04:05.8332022-10-25 15:04:07.833INFO 15604 --- [task-4] cn.god23bin.demo.task.TaskDemo: 任务B开始------- 2022-10-25T15:04:07.8332022-10-25 15:04:07.833INFO 15604 --- [task-3] cn.god23bin.demo.task.TaskDemo: 任务A开始------- 2022-10-25T15:04:07.8332022-10-25 15:04:07.848INFO 15604 --- [task-2] cn.god23bin.demo.task.TaskDemo: 任务B完成------- 2022-10-25T15:04:07.8482022-10-25 15:04:07.848INFO 15604 --- [task-1] cn.god23bin.demo.task.TaskDemo: 任务A完成------- 2022-10-25T15:04:07.8482022-10-25 15:04:09.833INFO 15604 --- [task-5] cn.god23bin.demo.task.TaskDemo: 任务A开始------- 2022-10-25T15:04:09.8332022-10-25 15:04:09.843INFO 15604 --- [task-4] cn.god23bin.demo.task.TaskDemo: 任务B完成------- 2022-10-25T15:04:09.8432022-10-25 15:04:09.843INFO 15604 --- [task-3] cn.god23bin.demo.task.TaskDemo: 任务A完成------- 2022-10-25T15:04:09.8432022-10-25 15:04:09.844INFO 15604 --- [task-6] cn.god23bin.demo.task.TaskDemo: 任务B开始------- 2022-10-25T15:04:09.8432022-10-25 15:04:11.830INFO 15604 --- [task-7] cn.god23bin.demo.task.TaskDemo: 任务A开始------- 2022-10-25T15:04:11.8302022-10-25 15:04:11.845INFO 15604 --- [task-6] cn.god23bin.demo.task.TaskDemo: 任务B完成------- 2022-10-25T15:04:11.8452022-10-25 15:04:11.845INFO 15604 --- [task-5] cn.god23bin.demo.task.TaskDemo: 任务A完成------- 2022-10-25T15:04:11.845总结首先讲了下定时任务是什么?接着讲了有哪些实现方式?对这些方式进行介绍 。
主要的定时任务可以通过以下的方式实现:

  1. 纯手写单线程死循环,配合线程的等待机制的方式(不推荐,麻烦,问题多多)
  2. 使用 JDK 提供的 Timer 配合 TimerTask 的方式(不推荐,单线程)
  3. 使用 JDK 提供的多线程的 ScheduledExecutorService 的方式(可代替 Timer,多线程的)
  4. 使用 Spring 提供的定时任务的方式(推荐,更加方便,可异步)
当然,除了这些方式,还可以使用定时任务框架,比如 Quartz、XXL-JOB、Elastic-Job 等等 。
最后的最后由本人水平所限,难免有错误以及不足之处, 屏幕前的靓仔靓女们 如有发现,恳请指出!
最后,谢谢你看到这里,谢谢你认真对待我的努力,希望这篇博客对你有所帮助!
你轻轻地点了个赞,那将在我的心里世界增添一颗明亮而耀眼的星!

经验总结扩展阅读