object SynchronousQueue extends Serializable
A blocking queue in which each insert operation
must wait for a corresponding remove operation by another thread, and vice
versa. A synchronous queue does not have any internal capacity, not even a
capacity of one. You cannot peek
at a synchronous queue because an
element is only present when you try to remove it; you cannot insert an
element (using any method) unless another thread is trying to remove it; you
cannot iterate as there is nothing to iterate. The head of the
queue is the element that the first queued inserting thread is trying to add
to the queue; if there is no such queued thread then no element is available
for removal and poll()
will return null
. For purposes of
other Collection
methods (for example contains
), a
SynchronousQueue
acts as an empty collection. This queue does not permit
null
elements.
Synchronous queues are similar to rendezvous channels used in CSP and Ada. They are well suited for handoff designs, in which an object running in one thread must sync up with an object running in another thread in order to hand it some information, event, or task.
This class supports an optional fairness policy for ordering waiting
producer and consumer threads. By default, this ordering is not guaranteed.
However, a queue constructed with fairness set to true
grants
threads access in FIFO order.
This class and its iterator implement all of the optional
methods of the Collection
and Iterator
interfaces.
This class is a member of the <a href="/java.base/java/util/package-summary.html#CollectionsFramework"> Java Collections Framework.
- Annotations
- @SerialVersionUID()
- Since
1.5
- Alphabetic
- By Inheritance
- SynchronousQueue
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()