所有类


java.util.concurrent
类 DelayQueue<E extends Delayed>

java.lang.Object
  继承者 java.util.AbstractCollection<E>
      继承者 java.util.AbstractQueue<E>
          继承者 java.util.concurrent.DelayQueue<E>
类型参数:
E - 在此 collection 中保持的元素类型
所有已实现的接口:
Iterable<E>, Collection<E>, BlockingQueue<E>, Queue<E>

public class DelayQueue<E extends Delayed>
   
   
   
   
   
extends AbstractQueue<E>
implements BlockingQueue<E>

Delayed 元素的一个无界阻塞队列,只有在延迟期满时才能从中提取元素。该队列的头部 是延迟期满后保存时间最长的 Delayed 元素。如果延迟都还没有期满,则队列没有头部,并且 poll 将返回 null。当一个元素的 getDelay(TimeUnit.NANOSECONDS) 方法返回一个小于或等于零的值时,则出现期满。此队列不允许使用 null 元素。

此类及其迭代器实现了 CollectionIterator 接口的所有可选 方法。

此类是 Java Collections Framework 的成员。

从以下版本开始:
1.5

构造方法摘要
DelayQueue()
          创建一个最初为空的新 DelayQueue
DelayQueue(Collection<? extends E> c)
          创建一个最初包含 Delayed 实例的给定 collection 中的元素的 DelayQueue
 
方法摘要
 boolean add(E o)
          将指定元素添加到此队列中。
 void clear()
          自动移除此延迟队列中的所有元素。
 int drainTo(Collection<? super E> c)
          移除此队列中所有可用的元素,并将它们添加到给定 collection 中。
 int drainTo(Collection<? super E> c, int maxElements)
          最多从此队列中移除给定数量的可用元素,并将这些元素添加到给定 collection 中。
 Iterator<E> iterator()
          返回在此队列中的元素上进行迭代的迭代器。
 boolean offer(E o)
          将指定元素插入到此延迟队列中。
 boolean offer(E o, long timeout, TimeUnit unit)
          将指定元素插入到此延迟队列中。
 E peek()
          检索但不移除此队列的头部,如果此队列不存在未到期延迟的元素,则返回 null
 E poll()
          检索并移除此队列的头部,如果此队列不存在未到期延迟的元素,则返回 null
 E poll(long timeout, TimeUnit unit)
          检索并移除此队列的头部,如果此队列不存在未到期延迟的元素,则在到达指定的等待时间之前,一直等待(如果有必要)。
 void put(E o)
          将指定元素添加到此延迟队列中。
 int remainingCapacity()
          因为 DelayQueue 没有容量限制,所以它总是返回 Integer.MAX_VALUE
 boolean remove(Object o)
          从此队列中移除指定元素的单个实例(如果存在)。
 int size()
          返回此 collection 中的元素数。
 E take()
          检索并移除此队列的头部,如果此队列不存在未到期延迟的元素,则等待它。
 Object[] toArray()
          返回包含此 collection 中所有元素的数组。
<T> T[]
toArray(T[] array)
          返回包含此 collection 中所有元素的数组;返回数组的运行时类型是指定数组的类型。
 
从类 java.util.AbstractQueue 继承的方法
addAll, element, remove
 
从类 java.util.AbstractCollection 继承的方法
contains, containsAll, isEmpty, removeAll, retainAll, toString
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
从接口 java.util.Queue 继承的方法
element, remove
 
从接口 java.util.Collection 继承的方法
addAll, contains, containsAll, equals, hashCode, isEmpty, removeAll, retainAll
 

构造方法详细信息

DelayQueue

public DelayQueue()
创建一个最初为空的新 DelayQueue


DelayQueue

public DelayQueue(Collection<? extends E> c)
创建一个最初包含 Delayed 实例的给定 collection 中的元素的 DelayQueue

参数:
c - collection
抛出:
NullPointerException - 如果 c 或者 collection 中的任何元素为 null
方法详细信息

offer

public boolean offer(E o)
将指定元素插入到此延迟队列中。

指定者:
接口 BlockingQueue<E extends Delayed> 中的 offer
指定者:
接口 Queue<E extends Delayed> 中的 offer
参数:
o - 要添加的元素
返回:
true
抛出:
NullPointerException - 如果指定的元素为 null

put

public void put(E o)
将指定元素添加到此延迟队列中。由于该队列是无界的,所以此方法永远不会阻塞。

指定者:
接口 BlockingQueue<E extends Delayed> 中的 put
参数:
o - 要添加的元素
抛出:
NullPointerException - 如果指定的元素为 null

offer

public boolean offer(E o,
                     long timeout,
                     TimeUnit unit)
将指定元素插入到此延迟队列中。由于该队列是无界的,所以此方法永远不会阻塞。

指定者:
接口 BlockingQueue<E extends Delayed> 中的 offer
参数:
o - 要添加的元素
timeout - 因为该方法永远不会阻塞,所以忽略此参数
unit - 因为该方法永远不会阻塞,所以忽略此参数
返回:
true
抛出:
NullPointerException - 如果指定的元素为 null

add

public boolean add(E o)
将指定元素添加到此队列中。

指定者:
接口 Collection<E extends Delayed> 中的 add
指定者:
接口 BlockingQueue<E extends Delayed> 中的 add
覆盖:
AbstractQueue<E extends Delayed> 中的 add
参数:
o - 要添加的元素
返回:
true(按照 Collection.add 的常规协定)。
抛出:
NullPointerException - 如果指定的元素为 null

take

public E take()
                       throws InterruptedException
检索并移除此队列的头部,如果此队列不存在未到期延迟的元素,则等待它。

指定者:
接口 BlockingQueue<E extends Delayed> 中的 take
返回:
此队列的头部
抛出:
InterruptedException - 如果等待时中断。

poll

public E poll(long timeout,
              TimeUnit unit)
                       throws InterruptedException
检索并移除此队列的头部,如果此队列不存在未到期延迟的元素,则在到达指定的等待时间之前,一直等待(如果有必要)。

指定者:
接口 BlockingQueue<E extends Delayed> 中的 poll
参数:
timeout - 放弃前要等待的时间长度,以 unit 为时间单位
unit - 确定如何解释 timeout 参数的 TimeUnit
返回:
此队列的头部;如果在出现未到期延迟的元素之前超出了指定的等待时间,则返回 null
抛出:
InterruptedException - 如果在等待时被中断。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部