如何通过线程池高效执行面试中的定时任务?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1513个文字,预计阅读时间需要7分钟。
在Java语言中,存在两个线程池可以执行定时任务:ScheduledThreadPool和SingleThreadScheduledExecutor。其中,SingleThreadScheduledExecutor是ScheduledThreadPool的单线程版本,其用法与Schedule类似。
在 Java 语言中,有两个线程池可以执行定时任务:ScheduledThreadPool 和 SingleThreadScheduledExecutor,其中 SingleThreadScheduledExecutor 可以看做是 ScheduledThreadPool 的单线程版本,它的用法和 ScheduledThreadPool 是一样的,所以本文重点来看 ScheduledThreadPool 线程池的使用。
ScheduledThreadPool 执行定时任务的方法有以下 3 个:
- 使用 schedule 方法执行定时任务,只执行一次定时任务。
- 使用 scheduleAtFixedRate 方法执行定时任务,执行多次定时任务。
- 使用 scheduleWithFixedDelay 方法执行定时任务,执行多次定时任务。
接下来我们看这 3 个方法的具体使用和区别。
1.scheduleschedule 方法只能执行一次定时任务,它需要传递 3 个参数:
- 第 1 个参数:传递一个任务,Runnable 或 Callable 对象;
- 第 2 个参数:添加定时任务后,再过多久开始执行定时任务;
- 第 3 个参数:时间单位,配合参数 2 一起使用。
本文共计1513个文字,预计阅读时间需要7分钟。
在Java语言中,存在两个线程池可以执行定时任务:ScheduledThreadPool和SingleThreadScheduledExecutor。其中,SingleThreadScheduledExecutor是ScheduledThreadPool的单线程版本,其用法与Schedule类似。
在 Java 语言中,有两个线程池可以执行定时任务:ScheduledThreadPool 和 SingleThreadScheduledExecutor,其中 SingleThreadScheduledExecutor 可以看做是 ScheduledThreadPool 的单线程版本,它的用法和 ScheduledThreadPool 是一样的,所以本文重点来看 ScheduledThreadPool 线程池的使用。
ScheduledThreadPool 执行定时任务的方法有以下 3 个:
- 使用 schedule 方法执行定时任务,只执行一次定时任务。
- 使用 scheduleAtFixedRate 方法执行定时任务,执行多次定时任务。
- 使用 scheduleWithFixedDelay 方法执行定时任务,执行多次定时任务。
接下来我们看这 3 个方法的具体使用和区别。
1.scheduleschedule 方法只能执行一次定时任务,它需要传递 3 个参数:
- 第 1 个参数:传递一个任务,Runnable 或 Callable 对象;
- 第 2 个参数:添加定时任务后,再过多久开始执行定时任务;
- 第 3 个参数:时间单位,配合参数 2 一起使用。

