Class MaybeMergeArray.ClqSimpleQueue<T>

    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) int consumerIndex  
      (package private) java.util.concurrent.atomic.AtomicInteger producerIndex  
      private static long serialVersionUID  
    • Constructor Summary

      Constructors 
      Constructor Description
      ClqSimpleQueue()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int consumerIndex()  
      void drop()  
      boolean offer​(T e)
      Atomically enqueue a single value.
      boolean offer​(T v1, T v2)
      Atomically enqueue two values.
      T poll()
      Tries to dequeue a value (non-null) or returns null if the queue is empty.
      int producerIndex()  
      • Methods inherited from class java.util.concurrent.ConcurrentLinkedQueue

        add, addAll, clear, contains, forEach, isEmpty, iterator, peek, remove, removeAll, removeIf, retainAll, size, spliterator, toArray, toArray, toString
      • Methods inherited from class java.util.AbstractQueue

        element, remove
      • Methods inherited from class java.util.AbstractCollection

        containsAll
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        containsAll, equals, hashCode, parallelStream, stream, toArray
      • Methods inherited from interface java.util.Queue

        element, remove
    • Field Detail

      • consumerIndex

        int consumerIndex
      • producerIndex

        final java.util.concurrent.atomic.AtomicInteger producerIndex
    • Constructor Detail

      • ClqSimpleQueue

        ClqSimpleQueue()
    • Method Detail

      • offer

        public boolean offer​(T v1,
                             T v2)
        Description copied from interface: SimpleQueue
        Atomically enqueue two values.
        Specified by:
        offer in interface SimpleQueue<T>
        Parameters:
        v1 - the first value to enqueue, not null
        v2 - the second value to enqueue, not null
        Returns:
        true if successful, false if the value was not enqueued likely due to reaching the queue capacity)
      • offer

        public boolean offer​(T e)
        Description copied from interface: SimpleQueue
        Atomically enqueue a single value.
        Specified by:
        offer in interface java.util.Queue<T>
        Specified by:
        offer in interface SimpleQueue<T>
        Overrides:
        offer in class java.util.concurrent.ConcurrentLinkedQueue<T>
        Parameters:
        e - the value to enqueue, not null
        Returns:
        true if successful, false if the value was not enqueued likely due to reaching the queue capacity)
      • poll

        @Nullable
        public T poll()
        Description copied from interface: SimpleQueue
        Tries to dequeue a value (non-null) or returns null if the queue is empty.

        If the producer uses SimpleQueue.offer(Object, Object) and when polling in pairs, if the first poll() returns a non-null item, the second poll() is guaranteed to return a non-null item as well.

        Specified by:
        poll in interface MaybeMergeArray.SimpleQueueWithConsumerIndex<T>
        Specified by:
        poll in interface java.util.Queue<T>
        Specified by:
        poll in interface SimpleQueue<T>
        Overrides:
        poll in class java.util.concurrent.ConcurrentLinkedQueue<T>
        Returns:
        the item or null to indicate an empty queue