Package org.jctools.queues.intrusive
Class MpscIntrusiveLinkedQueue
- java.lang.Object
-
- org.jctools.queues.intrusive.MpscIntrusiveLinkedQueuePad0
-
- org.jctools.queues.intrusive.MpscIntrusiveLinkedQueueProducerNodeRef
-
- org.jctools.queues.intrusive.MpscIntrusiveLinkedQueuePad1
-
- org.jctools.queues.intrusive.MpscIntrusiveLinkedQueueConsumerNodeRef
-
- org.jctools.queues.intrusive.MpscIntrusiveLinkedQueue
-
public class MpscIntrusiveLinkedQueue extends MpscIntrusiveLinkedQueueConsumerNodeRef
-
-
Field Summary
Fields Modifier and Type Field Description (package private) long
p01
(package private) long
p02
(package private) long
p03
(package private) long
p04
(package private) long
p05
(package private) long
p06
(package private) long
p07
(package private) long
p10
(package private) long
p11
(package private) long
p12
(package private) long
p13
(package private) long
p14
(package private) long
p15
(package private) long
p16
(package private) long
p17
-
Fields inherited from class org.jctools.queues.intrusive.MpscIntrusiveLinkedQueueConsumerNodeRef
stub
-
Fields inherited from class org.jctools.queues.intrusive.MpscIntrusiveLinkedQueuePad1
b000, b001, b002, b003, b004, b005, b006, b007, b010, b011, b012, b013, b014, b015, b016, b017, b020, b021, b022, b023, b024, b025, b026, b027, b030, b031, b032, b033, b034, b035, b036, b037, b040, b041, b042, b043, b044, b045, b046, b047, b050, b051, b052, b053, b054, b055, b056, b057, b060, b061, b062, b063, b064, b065, b066, b067, b070, b071, b072, b073, b074, b075, b076, b077, b100, b101, b102, b103, b104, b105, b106, b107, b110, b111, b112, b113, b114, b115, b116, b117, b120, b121, b122, b123, b124, b125, b126, b127, b130, b131, b132, b133, b134, b135, b136, b137, b140, b141, b142, b143, b144, b145, b146, b147, b150, b151, b152, b153, b154, b155, b156, b157, b160, b161, b162, b163, b164, b165, b166, b167
-
-
Constructor Summary
Constructors Constructor Description MpscIntrusiveLinkedQueue()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
boolean
isEmpty()
boolean
offer(Node node)
Node
peek()
Node
poll()
int
size()
This is an O(n) operation as we run through all the nodes and count them.
The accuracy of the value returned by this method is subject to races with producer/consumer threads.-
Methods inherited from class org.jctools.queues.intrusive.MpscIntrusiveLinkedQueueConsumerNodeRef
lpConsumerNode, lvConsumerNode, spConsumerNode
-
Methods inherited from class org.jctools.queues.intrusive.MpscIntrusiveLinkedQueueProducerNodeRef
lvProducerNode, xchgProducerNode
-
-
-
-
Method Detail
-
offer
public boolean offer(Node node)
-
poll
public Node poll()
-
peek
public Node peek()
-
clear
public void clear()
-
size
public int size()
This is an O(n) operation as we run through all the nodes and count them.
The accuracy of the value returned by this method is subject to races with producer/consumer threads. In particular when racing with the consumer thread this method may under estimate the size.
Note that passing nodes between queues, or concurrent requeuing of nodes can cause this method to return strange values.
-
isEmpty
public boolean isEmpty()
-
-