Class SingleConsumerOnlyUnboundedMailbox

java.lang.Object
org.apache.pekko.dispatch.SingleConsumerOnlyUnboundedMailbox
All Implemented Interfaces:
Serializable, MailboxType, ProducesMessageQueue<NodeMessageQueue>, scala.Equals, scala.Product

public final class SingleConsumerOnlyUnboundedMailbox extends Object implements MailboxType, ProducesMessageQueue<NodeMessageQueue>, scala.Product, Serializable
SingleConsumerOnlyUnboundedMailbox is a high-performance, multiple producer—single consumer, unbounded MailboxType, with the drawback that you can't have multiple consumers, which rules out using it with BalancingPool (BalancingDispatcher) for instance.

Currently this queue is slower for some benchmarks than the ConcurrentLinkedQueue from JDK 8 that is used by default, so be sure to measure the performance in your particular setting in order to determine which one to use.

See Also:
  • Constructor Details

    • SingleConsumerOnlyUnboundedMailbox

      public SingleConsumerOnlyUnboundedMailbox()
    • SingleConsumerOnlyUnboundedMailbox

      public SingleConsumerOnlyUnboundedMailbox(ActorSystem.Settings settings, com.typesafe.config.Config config)
  • Method Details

    • apply

      public static SingleConsumerOnlyUnboundedMailbox apply()
    • unapply

      public static boolean unapply(SingleConsumerOnlyUnboundedMailbox x$0)
    • create

      public final MessageQueue create(scala.Option<ActorRef> owner, scala.Option<ActorSystem> system)
      Specified by:
      create in interface MailboxType
    • copy

    • productPrefix

      public String productPrefix()
      Specified by:
      productPrefix in interface scala.Product
    • productArity

      public int productArity()
      Specified by:
      productArity in interface scala.Product
    • productElement

      public Object productElement(int x$1)
      Specified by:
      productElement in interface scala.Product
    • productIterator

      public scala.collection.Iterator<Object> productIterator()
      Specified by:
      productIterator in interface scala.Product
    • canEqual

      public boolean canEqual(Object x$1)
      Specified by:
      canEqual in interface scala.Equals
    • productElementName

      public String productElementName(int x$1)
      Specified by:
      productElementName in interface scala.Product
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object x$1)
      Specified by:
      equals in interface scala.Equals
      Overrides:
      equals in class Object