private static ScheduledExecutorService swapExpiredPool = new ScheduledThreadPoolExecutor(10); private ReentrantLock lock = new ReentrantLock(); priva ...
分类:
编程语言 时间:
2019-12-20 18:43:43
阅读次数:
218
ScheduledThreadPoolExecutor可以代替timer,timer的缺点是一个timer启动一个线程,如果任务在执行时候发生异常,该timer对应的线程会结束 ScheduledThreadPoolExecutor的效率更高,他比timer支持更丰富的功能 public class ...
分类:
编程语言 时间:
2019-11-23 12:37:38
阅读次数:
82
(手机横屏看源码更方便)注:java源码分析部分如无特殊说明均基于java8版本。注:本文基于ScheduledThreadPoolExecutor定时线程池类。简介前面我们一起学习了普通任务、未来任务的执行流程,今天我们再来学习一种新的任务——定时任务。定时任务是我们经常会用到的一种任务,它表示在未来某个时刻执行,或者未来按照某种规则重复执行的任务。问题(1)如何保证任务是在未来某个时刻才被执行
分类:
编程语言 时间:
2019-11-06 18:46:18
阅读次数:
103
ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor继承了ThreadPoolExecutor 实现了ScheduledExecutorService。主要用来处理延时任务和定时任务。 定时线程池的执行原理与一般的线程池执行过程有点差别,具体 ...
分类:
其他好文 时间:
2019-11-06 18:19:28
阅读次数:
95
之前学习ThreadPool的使用以及源码剖析,并且从面试的角度去介绍知识点的解答。今天小强带来周期性线程池的使用和重点源码剖析。 ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor:用来处理延时任务或定时任务 定时线程池类的类结构图 Sc ...
分类:
编程语言 时间:
2019-08-30 09:33:09
阅读次数:
82
`java.util.concurrent` 构造函数 特性 1. 使用专门的任务类型— 来执行周期任务 2. 使用专门的存储队列— 来存储任务, 是无界延迟队列 的一种。 3. 支持可选的 参数,在池被关闭(shutdown)之后支持可选的逻辑来决定是否继续运行周期或延迟任务。 ...
分类:
编程语言 时间:
2019-08-26 21:17:53
阅读次数:
91
1、DelayQueue是阻塞队列中非常有用的一种队列,经常被用于缓存或定时任务等的设计。
2、ScheduledThreadPoolExecutor.DelayedWorkQueue就是一种延时阻塞队列。
分类:
编程语言 时间:
2019-07-10 21:28:41
阅读次数:
129
1. ScheduledThreadPoolExecutor简介 ScheduledThreadPoolExecutor可以用来在给定延时后执行异步任务或者周期性执行任务,相对于任务调度的Timer来说,其功能更加强大,Timer只能使用一个后台线程执行任务,而ScheduledThreadPool ...
分类:
编程语言 时间:
2019-02-08 20:12:48
阅读次数:
200
我们知道线程池运行时,会不断从任务队列中获取任务,然后执行任务。如果我们想实现延时或者定时执行任务,重要一点就是任务队列会根据任务延时时间的不同进行排序,延时时间越短地就排在队列的前面,先被获取执行。 队列是先进先出的数据结构,就是先进入队列的数据,先被获取。但是有一种特殊的队列叫做优先级队列,它会 ...
分类:
其他好文 时间:
2019-01-16 15:04:33
阅读次数:
179
ScheduledThreadPoolExecutor 创建实例 延时执行一次性任务 在以 unit 为单位的 initialDelay 延时后执行第一次任务, 并在当次任务执行完成之后在 delay 延时之后再次执行。 ...
分类:
其他好文 时间:
2018-12-09 22:05:22
阅读次数:
212