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) longp01(package private) longp02(package private) longp03(package private) longp04(package private) longp05(package private) longp06(package private) longp07(package private) longp10(package private) longp11(package private) longp12(package private) longp13(package private) longp14(package private) longp15(package private) longp16(package private) longp17-
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 voidclear()booleanisEmpty()booleanoffer(Node node)Nodepeek()Nodepoll()intsize()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()
-
-