在阻塞队里中,除了对元素进行增加和删除外,我们可以把元素的删除做一个延迟的处理,即使用DelayQueue的方法。这里的删除需要一定的时间才能生效,有点类似于过期处理的理念。下面我们就DelayQueue的概念、特点进行讲解,然后在代码示例中体会DelayQueue的使用。
1.概念
是一个带有延迟时间的无界阻塞队列。队列中的元素,只有等延时时间到了,才能取出来。此队列一般用于过期数据的删除,或任务调度。以下,模拟一下定长时间的数据删除。
2.特点
(1)无边界设计
(2)添加(put)不阻塞,移除阻塞
(3)元素都有一个过期时间
(4)取元素只有过期的才会被取出
3.实例
每个需要放入DelayQueue队列元素需要实现Delayed接口,下面我们创建DelayObject 类,其实例对象将被放入DelayQueue中。其构造函数包括字符串类型数据及延迟毫秒变量。
publicclassDelayObjectimplementsDelayed{ privateStringdata; privatelongstartTime; publicDelayObject(Stringdata,longdelayInMilliseconds){ this.data=data; this.startTime=System.currentTimeMillis()+delayInMilliseconds; }
原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容