Modifier and Type | Method and Description |
---|---|
static <E> int |
drain(BlockingQueue<E> q,
Collection<? super E> buffer,
int numElements,
long timeout,
TimeUnit unit)
Drains the queue as
BlockingQueue.drainTo(Collection, int) , but if the requested numElements elements are not available, it will wait for them up to the specified timeout. |
static <E> int |
drainUninterruptibly(BlockingQueue<E> q,
Collection<? super E> buffer,
int numElements,
long timeout,
TimeUnit unit)
Drains the queue as drain(BlockingQueue, Collection, int, long, TimeUnit), but with a different behavior in case it is interrupted while waiting.
|
static <E> ArrayBlockingQueue<E> |
newArrayBlockingQueue(int capacity)
Creates an empty
ArrayBlockingQueue with the given (fixed) capacity and nonfair access policy. |
static <E> ArrayDeque<E> |
newArrayDeque()
Creates an empty
ArrayDeque . |
static <E> ArrayDeque<E> |
newArrayDeque(Iterable<? extends E> elements)
Creates an
ArrayDeque containing the elements of the specified iterable, in the order they are returned by the iterable’s iterator. |
static <E> ConcurrentLinkedQueue<E> |
newConcurrentLinkedQueue()
Creates an empty
ConcurrentLinkedQueue . |
static <E> ConcurrentLinkedQueue<E> |
newConcurrentLinkedQueue(Iterable<? extends E> elements)
Creates a
ConcurrentLinkedQueue containing the elements of the specified iterable, in the order they are returned by the iterable’s iterator. |
static <E> LinkedBlockingDeque<E> |
newLinkedBlockingDeque()
Creates an empty
LinkedBlockingDeque with a capacity of Integer.MAX_VALUE . |
static <E> LinkedBlockingDeque<E> |
newLinkedBlockingDeque(int capacity)
Creates an empty
LinkedBlockingDeque with the given (fixed) capacity. |
static <E> LinkedBlockingDeque<E> |
newLinkedBlockingDeque(Iterable<? extends E> elements)
Creates a
LinkedBlockingDeque with a capacity of Integer.MAX_VALUE , containing the elements of the specified iterable, in the order they are returned by the iterable’s iterator. |
static <E> LinkedBlockingQueue<E> |
newLinkedBlockingQueue()
Creates an empty
LinkedBlockingQueue with a capacity of Integer.MAX_VALUE . |
static <E> LinkedBlockingQueue<E> |
newLinkedBlockingQueue(int capacity)
Creates an empty
LinkedBlockingQueue with the given (fixed) capacity. |
static <E> LinkedBlockingQueue<E> |
newLinkedBlockingQueue(Iterable<? extends E> elements)
Creates a
LinkedBlockingQueue with a capacity of Integer.MAX_VALUE , containing the elements of the specified iterable, in the order they are returned by the iterable’s iterator. |
static <E extends Comparable> |
newPriorityBlockingQueue()
Creates an empty
PriorityBlockingQueue with the ordering given by its elements’ natural ordering. |
static <E extends Comparable> |
newPriorityBlockingQueue(Iterable<? extends E> elements)
Creates a
PriorityBlockingQueue containing the given elements. |
static <E extends Comparable> |
newPriorityQueue()
Creates an empty
PriorityQueue with the ordering given by its elements’ natural ordering. |
static <E extends Comparable> |
newPriorityQueue(Iterable<? extends E> elements)
Creates a
PriorityQueue containing the given elements. |
static <E> SynchronousQueue<E> |
newSynchronousQueue()
Creates an empty
SynchronousQueue with nonfair access policy. |
static <E> Deque<E> |
synchronizedDeque(Deque<E> deque)
Returns a synchronized (thread-safe) deque backed by the specified deque.
|
static <E> Queue<E> |
synchronizedQueue(Queue<E> queue)
Returns a synchronized (thread-safe) queue backed by the specified queue.
|
public static <E> ArrayBlockingQueue<E> newArrayBlockingQueue(int capacity)
Creates an empty ArrayBlockingQueue
with the given (fixed) capacity and nonfair access policy.
public static <E> ArrayDeque<E> newArrayDeque()
Creates an empty ArrayDeque
.
public static <E> ArrayDeque<E> newArrayDeque(Iterable<? extends E> elements)
Creates an ArrayDeque
containing the elements of the specified iterable, in the order they are returned by the iterable’s iterator.
public static <E> ConcurrentLinkedQueue<E> newConcurrentLinkedQueue()
Creates an empty ConcurrentLinkedQueue
.
public static <E> ConcurrentLinkedQueue<E> newConcurrentLinkedQueue(Iterable<? extends E> elements)
Creates a ConcurrentLinkedQueue
containing the elements of the specified iterable, in the order they are returned by the iterable’s iterator.
public static <E> LinkedBlockingDeque<E> newLinkedBlockingDeque()
Creates an empty LinkedBlockingDeque
with a capacity of Integer.MAX_VALUE
.
public static <E> LinkedBlockingDeque<E> newLinkedBlockingDeque(int capacity)
Creates an empty LinkedBlockingDeque
with the given (fixed) capacity.
IllegalArgumentException
- if capacity
is less than 1public static <E> LinkedBlockingDeque<E> newLinkedBlockingDeque(Iterable<? extends E> elements)
Creates a LinkedBlockingDeque
with a capacity of Integer.MAX_VALUE
, containing the elements of the specified iterable, in the order they are returned by the iterable’s iterator.
public static <E> LinkedBlockingQueue<E> newLinkedBlockingQueue()
Creates an empty LinkedBlockingQueue
with a capacity of Integer.MAX_VALUE
.
public static <E> LinkedBlockingQueue<E> newLinkedBlockingQueue(int capacity)
Creates an empty LinkedBlockingQueue
with the given (fixed) capacity.
IllegalArgumentException
- if capacity
is less than 1public static <E> LinkedBlockingQueue<E> newLinkedBlockingQueue(Iterable<? extends E> elements)
Creates a LinkedBlockingQueue
with a capacity of Integer.MAX_VALUE
, containing the elements of the specified iterable, in the order they are returned by the iterable’s iterator.
elements
- the elements that the queue should contain, in orderLinkedBlockingQueue
containing those elementspublic static <E extends Comparable> PriorityBlockingQueue<E> newPriorityBlockingQueue()
Creates an empty PriorityBlockingQueue
with the ordering given by its elements’ natural ordering.
E
be Comparable
since 15.0).public static <E extends Comparable> PriorityBlockingQueue<E> newPriorityBlockingQueue(Iterable<? extends E> elements)
Creates a PriorityBlockingQueue
containing the given elements.
Note: If the specified iterable is a SortedSet
or a PriorityQueue
, this priority queue will be ordered according to the same ordering.
E
be Comparable
since 15.0).public static <E extends Comparable> PriorityQueue<E> newPriorityQueue()
Creates an empty PriorityQueue
with the ordering given by its elements’ natural ordering.
E
be Comparable
since 15.0).public static <E extends Comparable> PriorityQueue<E> newPriorityQueue(Iterable<? extends E> elements)
Creates a PriorityQueue
containing the given elements.
Note: If the specified iterable is a SortedSet
or a PriorityQueue
, this priority queue will be ordered according to the same ordering.
E
be Comparable
since 15.0).public static <E> SynchronousQueue<E> newSynchronousQueue()
Creates an empty SynchronousQueue
with nonfair access policy.
@Beta public static <E> int drain(BlockingQueue<E> q, Collection<? super E> buffer, int numElements, long timeout, TimeUnit unit) throws InterruptedException
Drains the queue as BlockingQueue.drainTo(Collection, int)
, but if the requested numElements
elements are not available, it will wait for them up to the specified timeout.
q
- the blocking queue to be drainedbuffer
- where to add the transferred elementsnumElements
- the number of elements to be waited fortimeout
- how long to wait before giving up, in units of unit
unit
- a TimeUnit
determining how to interpret the timeout parameterInterruptedException
- if interrupted while waiting@Beta public static <E> int drainUninterruptibly(BlockingQueue<E> q, Collection<? super E> buffer, int numElements, long timeout, TimeUnit unit)
Drains the queue as drain(BlockingQueue, Collection, int, long, TimeUnit), but with a different behavior in case it is interrupted while waiting. In that case, the operation will continue as usual, and in the end the thread’s interruption status will be set (no InterruptedException
is thrown).
q
- the blocking queue to be drainedbuffer
- where to add the transferred elementsnumElements
- the number of elements to be waited fortimeout
- how long to wait before giving up, in units of unit
unit
- a TimeUnit
determining how to interpret the timeout parameterpublic static <E> Queue<E> synchronizedQueue(Queue<E> queue)
Returns a synchronized (thread-safe) queue backed by the specified queue. In order to guarantee serial access, it is critical that all access to the backing queue is accomplished through the returned queue.
It is imperative that the user manually synchronize on the returned queue when accessing the queue’s iterator:
Queue<E> queue = Queues.synchronizedQueue(MinMaxPriorityQueue.<E>create());
...
queue.add(element); // Needn't be in synchronized block
...
synchronized (queue) { // Must synchronize on queue!
Iterator<E> i = queue.iterator(); // Must be in synchronized block
while (i.hasNext()) {
foo(i.next());
} }
Failure to follow this advice may result in non-deterministic behavior.
The returned queue will be serializable if the specified queue is serializable.
queue
- the queue to be wrapped in a synchronized viewpublic static <E> Deque<E> synchronizedDeque(Deque<E> deque)
Returns a synchronized (thread-safe) deque backed by the specified deque. In order to guarantee serial access, it is critical that all access to the backing deque is accomplished through the returned deque.
It is imperative that the user manually synchronize on the returned deque when accessing any of the deque’s iterators:
Deque<E> deque = Queues.synchronizedDeque(Queues.<E>newArrayDeque());
...
deque.add(element); // Needn't be in synchronized block
...
synchronized (deque) { // Must synchronize on deque!
Iterator<E> i = deque.iterator(); // Must be in synchronized block
while (i.hasNext()) {
foo(i.next());
} }
Failure to follow this advice may result in non-deterministic behavior.
The returned deque will be serializable if the specified deque is serializable.
deque
- the deque to be wrapped in a synchronized view