DelayQueue是实现Delayed接口的元素的一个无界阻塞队列,只有在延迟期满时才能从中提取元素。
Delayed接口定义了getDelay(TimeUnit unit)方法。
该队列的头部是延迟期满后保存时间最长的 Delayed 元素。如果延迟都还没有期满,则队列没有头部,并且 poll 将返回 null。当一个元素的getDelay(TimeUnit unit) 方法返回一个小于或等于零的值时,则出现期满。
注意1:它是无界阻塞队列,容量是无限的。
注意2:它是线程安全的,是阻塞的
注意3:不允许使用 null 元素。
注意4:加入的元素必须实现了Delayed接口。
public interface Delayed extends Comparable<Delayed>
Delayed是一种混合风格的接口,用来标记那些应该在给定延迟时间之后执行的对象。
此接口的实现必须定义一个 compareTo 方法,该方法提供与此接口的 getDelay 方法一致的排序。
注意5:对于put(E o)和offer(E o, long timeout, TimeUnit unit),由于该队列是无界的,所以此方法永远不会阻塞。
因此参数timeout和unit没意义,会被忽略掉。
注意6:此类及其迭代器实现了 Collection 和 Iterator 接口的所有可选 方法。
Delayed接口定义了getDelay(TimeUnit unit)方法。
该队列的头部是延迟期满后保存时间最长的 Delayed 元素。如果延迟都还没有期满,则队列没有头部,并且 poll 将返回 null。当一个元素的getDelay(TimeUnit unit) 方法返回一个小于或等于零的值时,则出现期满。
注意1:它是无界阻塞队列,容量是无限的。
注意2:它是线程安全的,是阻塞的
注意3:不允许使用 null 元素。
注意4:加入的元素必须实现了Delayed接口。
public interface Delayed extends Comparable<Delayed>
Delayed是一种混合风格的接口,用来标记那些应该在给定延迟时间之后执行的对象。
此接口的实现必须定义一个 compareTo 方法,该方法提供与此接口的 getDelay 方法一致的排序。
注意5:对于put(E o)和offer(E o, long timeout, TimeUnit unit),由于该队列是无界的,所以此方法永远不会阻塞。
因此参数timeout和unit没意义,会被忽略掉。
注意6:此类及其迭代器实现了 Collection 和 Iterator 接口的所有可选 方法。