Class ConcurrentLinkedBlockingQueue<T>
java.lang.Object
java.util.AbstractCollection<T>
java.util.AbstractQueue<T>
java.util.concurrent.ConcurrentLinkedQueue<T>
org.jgroups.util.ConcurrentLinkedBlockingQueue<T>
- Type Parameters:
T- T
- All Implemented Interfaces:
Serializable, Iterable<T>, Collection<T>, BlockingQueue<T>, Queue<T>
public class ConcurrentLinkedBlockingQueue<T>
extends ConcurrentLinkedQueue<T>
implements BlockingQueue<T>
Concurrent queue which offers optional blocking on empty / full. Designed for multiple producers, but only
a single consumer. Only methods required by message bundlers (offer(), poll(), drainTo(), size() etc) are implemented.
Might add more implementation as needed.
See https://issues.redhat.com/browse/JGRP-2890 for details
See https://issues.redhat.com/browse/JGRP-2890 for details
- Since:
- 5.5.0
- Author:
- Bela Ban
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final booleanprotected final booleanprotected final intprotected final IntUnaryOperatorprotected final Lockprotected final Conditionprotected final Conditionprotected final AtomicInteger -
Constructor Summary
ConstructorsConstructorDescriptionConcurrentLinkedBlockingQueue(int capacity, boolean block_on_empty, boolean block_on_full) -
Method Summary
Modifier and TypeMethodDescriptionbooleanbooleanaddAll(Collection<? extends T> c) voidclear()intdrainTo(Collection<? super T> c) intdrainTo(Collection<? super T> c, int max) booleanisEmpty()booleanbooleanpoll()voidintremove()booleanbooleanremoveAll(Collection<?> c) booleanbooleanretainAll(Collection<?> c) protected voidprotected voidintsize()take()Methods inherited from class ConcurrentLinkedQueue
contains, forEach, iterator, peek, spliterator, toArray, toArray, toStringMethods inherited from class AbstractQueue
elementMethods inherited from class AbstractCollection
containsAllMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface BlockingQueue
containsMethods inherited from interface Collection
containsAll, equals, hashCode, iterator, parallelStream, spliterator, stream, toArray, toArray, toArray
-
Field Details
-
capacity
protected final int capacity -
size
-
block_on_empty
protected final boolean block_on_empty -
block_on_full
protected final boolean block_on_full -
lock
-
not_empty
-
not_full
-
INCR
-
-
Constructor Details
-
ConcurrentLinkedBlockingQueue
public ConcurrentLinkedBlockingQueue(int capacity, boolean block_on_empty, boolean block_on_full)
-
-
Method Details
-
put
- Specified by:
putin interfaceBlockingQueue<T>- Throws:
InterruptedException
-
add
- Specified by:
addin interfaceBlockingQueue<T>- Specified by:
addin interfaceCollection<T>- Specified by:
addin interfaceQueue<T>- Overrides:
addin classConcurrentLinkedQueue<T>
-
addAll
- Specified by:
addAllin interfaceCollection<T>- Overrides:
addAllin classConcurrentLinkedQueue<T>
-
offer
- Specified by:
offerin interfaceBlockingQueue<T>- Specified by:
offerin interfaceQueue<T>- Overrides:
offerin classConcurrentLinkedQueue<T>
-
offer
- Specified by:
offerin interfaceBlockingQueue<T>- Throws:
InterruptedException
-
clear
public void clear()- Specified by:
clearin interfaceCollection<T>- Overrides:
clearin classConcurrentLinkedQueue<T>
-
isEmpty
public boolean isEmpty()- Specified by:
isEmptyin interfaceCollection<T>- Overrides:
isEmptyin classConcurrentLinkedQueue<T>
-
poll
-
poll
- Specified by:
pollin interfaceBlockingQueue<T>- Throws:
InterruptedException
-
take
- Specified by:
takein interfaceBlockingQueue<T>- Throws:
InterruptedException
-
drainTo
- Specified by:
drainToin interfaceBlockingQueue<T>
-
drainTo
- Specified by:
drainToin interfaceBlockingQueue<T>
-
remove
-
remove
- Specified by:
removein interfaceBlockingQueue<T>- Specified by:
removein interfaceCollection<T>- Overrides:
removein classConcurrentLinkedQueue<T>
-
removeAll
- Specified by:
removeAllin interfaceCollection<T>- Overrides:
removeAllin classConcurrentLinkedQueue<T>
-
removeIf
- Specified by:
removeIfin interfaceCollection<T>- Overrides:
removeIfin classConcurrentLinkedQueue<T>
-
retainAll
- Specified by:
retainAllin interfaceCollection<T>- Overrides:
retainAllin classConcurrentLinkedQueue<T>
-
size
public int size()- Specified by:
sizein interfaceCollection<T>- Overrides:
sizein classConcurrentLinkedQueue<T>
-
remainingCapacity
public int remainingCapacity()- Specified by:
remainingCapacityin interfaceBlockingQueue<T>
-
signalNotEmpty
protected void signalNotEmpty() -
signalNotFull
protected void signalNotFull()
-