Java in a Nutshell, 5th Edition [Electronic resources]

نسخه متنی -صفحه : 1191/ 769
نمايش فراداده

ArrayBlockingQueue<E>java.util.concurrent

Java 5.0serializable collection

This BlockingQueue implementation uses an array to store queue elements. The internal array has a fixed size that is specified when the queue is created, which means that this is a bounded queue and the put( ) method blocks when the queue has no more room. ArrayBlockingQueue orders its elements on a first-in, first-out (FIFO) basis. As with all BlockingQueue implementations, null elements are prohibited.

If you pass TRue as the second argument to the ArrayBlockingQueue constructor, the queue enforces a fairness policy for blocked threads: threads blocked in put( ) or take( ) are themselves queued in FIFO order, and the thread that has been waiting the longest is served first. This prevents thread starvation but may decrease overall throughput for the ArrayBlockingQueue.

Figure 16-71. java.util.concurrent.ArrayBlockingQueue<E>

public class

ArrayBlockingQueue<E> extends java.util.AbstractQueue<E> implements BlockingQueue<E>, Serializable { // Public Constructors public

ArrayBlockingQueue (int

capacity ); public

ArrayBlockingQueue (int

capacity , boolean

fair ); public

ArrayBlockingQueue (int

capacity , boolean

fair , java.util.Collection<? extends E>

c ); // Methods Implementing BlockingQueue public int

drainTo (java.util.Collection<? super E>

c ); public int

drainTo (java.util.Collection<? super E>

c , int

maxElements ); public boolean

offer (E

o ); public boolean

offer (E

o , long

timeout , TimeUnit

unit ) throws InterruptedException; public E

poll (long

timeout , TimeUnit

unit ) throws InterruptedException; public void

put (E

o ) throws InterruptedException; public int

remainingCapacity ( ); public E

take ( ) throws InterruptedException; // Methods Implementing Collection public void

clear ( ); public boolean

contains (Object

o ); public java.util.Iterator<E>

iterator ( ); public boolean

remove (Object

o ); public int

size ( ); public Object[ ]

toArray ( ); public <T> T[ ]

toArray (T[ ]

a ); // Methods Implementing Queue public E

peek ( ); public E

poll ( ); // Public Methods Overriding AbstractCollection public String

toString ( ); }