E - public final class SpscLinkedAtomicQueue<E> extends AbstractQueue<E>
| Constructor and Description |
|---|
SpscLinkedAtomicQueue() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
isEmpty()
IMPLEMENTATION NOTES: Queue is empty when producerNode is the same as consumerNode. |
Iterator<E> |
iterator() |
protected LinkedQueueAtomicNode<E> |
lpConsumerNode() |
protected LinkedQueueAtomicNode<E> |
lpProducerNode() |
protected LinkedQueueAtomicNode<E> |
lvConsumerNode() |
protected LinkedQueueAtomicNode<E> |
lvProducerNode() |
boolean |
offer(E nextValue)
IMPLEMENTATION NOTES: Offer is allowed from a SINGLE thread. |
E |
peek() |
E |
poll()
IMPLEMENTATION NOTES: Poll is allowed from a SINGLE thread. |
int |
size()
IMPLEMENTATION NOTES: This is an O(n) operation as we run through all the nodes and count them. |
protected void |
spConsumerNode(LinkedQueueAtomicNode<E> node) |
protected void |
spProducerNode(LinkedQueueAtomicNode<E> node) |
protected LinkedQueueAtomicNode<E> |
xchgProducerNode(LinkedQueueAtomicNode<E> node) |
contains, containsAll, remove, removeAll, retainAll, toArray, toArray, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcontains, containsAll, equals, hashCode, remove, removeAll, retainAll, toArray, toArraypublic boolean offer(E nextValue)
public E poll()
public E peek()
protected final LinkedQueueAtomicNode<E> lvProducerNode()
protected final LinkedQueueAtomicNode<E> lpProducerNode()
protected final void spProducerNode(LinkedQueueAtomicNode<E> node)
protected final LinkedQueueAtomicNode<E> xchgProducerNode(LinkedQueueAtomicNode<E> node)
protected final LinkedQueueAtomicNode<E> lvConsumerNode()
protected final LinkedQueueAtomicNode<E> lpConsumerNode()
protected final void spConsumerNode(LinkedQueueAtomicNode<E> node)
public final Iterator<E> iterator()
iterator in interface Iterable<E>iterator in interface Collection<E>iterator in class AbstractCollection<E>public final int size()
IMPLEMENTATION NOTES:
This is an O(n) operation as we run through all the nodes and count them.
size in interface Collection<E>size in class AbstractCollection<E>Collection.size()public final boolean isEmpty()
IMPLEMENTATION NOTES:
Queue is empty when producerNode is the same as consumerNode. An alternative implementation would be to observe
the producerNode.value is null, which also means an empty queue because only the consumerNode.value is allowed to
be null.
isEmpty in interface Collection<E>isEmpty in class AbstractCollection<E>MessagePassingQueue.isEmpty()Copyright © 2008–2016 The Netty Project. All rights reserved.