多线程——定时任务ScheduledThreadPoolExecutor用法
创建
同样是用Executors工具类:
创建定时任务线程池
还有一个重载方法
接收一个额外的参数:线程工厂
创建单个定时任务执行器:
重载:也接收一个线程工厂
区别说明
singleThread:
这里可以new, 说明他是一个类
传参只有一个数字1,意味着我们这个线程池只有一个线程,
只有一个线程意味着我们这个定时任务线程池要执行多个任务的话,一个线程执行多个任务必然是按顺序去执行的,一个线程执行多个任务能保证任务执行顺序。
这就是singleThread的特点。
与之对应的重载方法和上面两个是不关心一个线程还是多个线程的,是可以支持多个线程的。
相同说明
两组都是通过:
来初始化定时任务的执行器的
ScheduledThreadPoolExecutor的方法
schedule方法:两个重载的,实现一样
特点:
只执行一次;
调用了delayedExecute方法:
所以还支持延迟去执行任务****(四个都有)
scheduleAtFixedRate
提交固定的时间间隔的任务。每个任务开始的时间间隔相同(间隔时间包含了任务执行时间)。
参数:
scheduleWithFixedDelay
提交固定延时间隔去执行的任务。上一个任务结束到下一个任务开始的中间的延时的时间间隔相同(间隔时间不包含任务执行时间)。