Package org.apache.tomcat.jdbc.pool
Class FairBlockingQueue<E>
- java.lang.Object
- 
- org.apache.tomcat.jdbc.pool.FairBlockingQueue<E>
 
- 
- Type Parameters:
- E- Type of element in the queue
 - All Implemented Interfaces:
- java.lang.Iterable<E>,- java.util.Collection<E>,- java.util.concurrent.BlockingQueue<E>,- java.util.Queue<E>
 
 public class FairBlockingQueue<E> extends java.lang.Object implements java.util.concurrent.BlockingQueue<E>A simple implementation of a blocking queue with fairness waiting. invocations to method poll(...) will get handed out in the order they were received. Locking is fine grained, a shared lock is only used during the first level of contention, waiting is done in a lock per thread basis so that order is guaranteed once the thread goes into a suspended monitor state.
 Not all of the methods of theBlockingQueueare implemented.
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description protected classFairBlockingQueue.ExchangeCountDownLatch<T>protected classFairBlockingQueue.FairIteratorprotected classFairBlockingQueue.ItemFuture<T>
 - 
Constructor SummaryConstructors Constructor Description FairBlockingQueue()Creates a new fair blocking queue.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(E e)booleanaddAll(java.util.Collection<? extends E> c)voidclear()booleancontains(java.lang.Object e)booleancontainsAll(java.util.Collection<?> c)intdrainTo(java.util.Collection<? super E> c)intdrainTo(java.util.Collection<? super E> c, int maxElements)Eelement()booleanisEmpty()java.util.Iterator<E>iterator()booleanoffer(E e)Will always return true, queue is unbounded.booleanoffer(E e, long timeout, java.util.concurrent.TimeUnit unit)Will never timeout, as it invokes theoffer(Object)method.Epeek()Epoll()Epoll(long timeout, java.util.concurrent.TimeUnit unit)Fair retrieval of an object in the queue.java.util.concurrent.Future<E>pollAsync()Request an item from the queue asynchronouslyvoidput(E e)intremainingCapacity()Eremove()booleanremove(java.lang.Object e)booleanremoveAll(java.util.Collection<?> c)booleanretainAll(java.util.Collection<?> c)intsize()Etake()java.lang.Object[]toArray()<T> T[]toArray(T[] a)- 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
- 
 
- 
- 
- 
Method Detail- 
offerpublic boolean offer(E e) Will always return true, queue is unbounded.
 - 
offerpublic boolean offer(E e, long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException Will never timeout, as it invokes theoffer(Object)method. Once a lock has been acquired, the- Specified by:
- offerin interface- java.util.concurrent.BlockingQueue<E>
- Throws:
- java.lang.InterruptedException
 
 - 
pollpublic E poll(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException Fair retrieval of an object in the queue. Objects are returned in the order the threads requested them.- Specified by:
- pollin interface- java.util.concurrent.BlockingQueue<E>
- Throws:
- java.lang.InterruptedException
 
 - 
pollAsyncpublic java.util.concurrent.Future<E> pollAsync() Request an item from the queue asynchronously- Returns:
- - a future pending the result from the queue poll request
 
 - 
removepublic boolean remove(java.lang.Object e) 
 - 
sizepublic int size() - Specified by:
- sizein interface- java.util.Collection<E>
 
 - 
iteratorpublic java.util.Iterator<E> iterator() 
 - 
containspublic boolean contains(java.lang.Object e) 
 - 
addpublic boolean add(E e) 
 - 
drainTopublic int drainTo(java.util.Collection<? super E> c, int maxElements) - Specified by:
- drainToin interface- java.util.concurrent.BlockingQueue<E>
- Throws:
- java.lang.UnsupportedOperationException- - this operation is not supported
 
 - 
drainTopublic int drainTo(java.util.Collection<? super E> c) - Specified by:
- drainToin interface- java.util.concurrent.BlockingQueue<E>
- Throws:
- java.lang.UnsupportedOperationException- - this operation is not supported
 
 - 
putpublic void put(E e) throws java.lang.InterruptedException - Specified by:
- putin interface- java.util.concurrent.BlockingQueue<E>
- Throws:
- java.lang.InterruptedException
 
 - 
remainingCapacitypublic int remainingCapacity() - Specified by:
- remainingCapacityin interface- java.util.concurrent.BlockingQueue<E>
 
 - 
takepublic E take() throws java.lang.InterruptedException - Specified by:
- takein interface- java.util.concurrent.BlockingQueue<E>
- Throws:
- java.lang.InterruptedException
 
 - 
addAllpublic boolean addAll(java.util.Collection<? extends E> c) - Specified by:
- addAllin interface- java.util.Collection<E>
 
 - 
clearpublic void clear() - Specified by:
- clearin interface- java.util.Collection<E>
- Throws:
- java.lang.UnsupportedOperationException- - this operation is not supported
 
 - 
containsAllpublic boolean containsAll(java.util.Collection<?> c) - Specified by:
- containsAllin interface- java.util.Collection<E>
- Throws:
- java.lang.UnsupportedOperationException- - this operation is not supported
 
 - 
isEmptypublic boolean isEmpty() - Specified by:
- isEmptyin interface- java.util.Collection<E>
 
 - 
removeAllpublic boolean removeAll(java.util.Collection<?> c) - Specified by:
- removeAllin interface- java.util.Collection<E>
- Throws:
- java.lang.UnsupportedOperationException- - this operation is not supported
 
 - 
retainAllpublic boolean retainAll(java.util.Collection<?> c) - Specified by:
- retainAllin interface- java.util.Collection<E>
- Throws:
- java.lang.UnsupportedOperationException- - this operation is not supported
 
 - 
toArraypublic java.lang.Object[] toArray() - Specified by:
- toArrayin interface- java.util.Collection<E>
- Throws:
- java.lang.UnsupportedOperationException- - this operation is not supported
 
 - 
toArraypublic <T> T[] toArray(T[] a) - Specified by:
- toArrayin interface- java.util.Collection<E>
- Throws:
- java.lang.UnsupportedOperationException- - this operation is not supported
 
 - 
elementpublic E element() - Specified by:
- elementin interface- java.util.Queue<E>
- Throws:
- java.lang.UnsupportedOperationException- - this operation is not supported
 
 - 
peekpublic E peek() - Specified by:
- peekin interface- java.util.Queue<E>
- Throws:
- java.lang.UnsupportedOperationException- - this operation is not supported
 
 
- 
 
-