|
Apache Tomcat 7.0.28 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.tomcat.jdbc.pool.MultiLockFairBlockingQueue<E>
public class MultiLockFairBlockingQueue<E>
EXPERIMENTAL AND NOT YET COMPLETE!
An implementation of a blocking queue with fairness waiting and lock dispersal to avoid contention.
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 the BlockingQueue
are implemented.
Nested Class Summary | |
---|---|
protected class |
MultiLockFairBlockingQueue.ExchangeCountDownLatch<T>
|
protected class |
MultiLockFairBlockingQueue.FairIterator
|
protected class |
MultiLockFairBlockingQueue.ItemFuture<T>
|
Constructor Summary | |
---|---|
MultiLockFairBlockingQueue()
Creates a new fair blocking queue. |
Method Summary | ||
---|---|---|
boolean |
add(E e)
|
|
boolean |
addAll(Collection<? extends E> c)
|
|
void |
clear()
|
|
boolean |
contains(Object e)
|
|
boolean |
containsAll(Collection<?> c)
|
|
int |
drainTo(Collection<? super E> c)
|
|
int |
drainTo(Collection<? super E> c,
int maxElements)
|
|
E |
element()
|
|
int |
getNextPoll()
|
|
int |
getNextPut()
|
|
boolean |
isEmpty()
|
|
Iterator<E> |
iterator()
|
|
boolean |
offer(E e)
Will always return true, queue is unbounded. |
|
boolean |
offer(E e,
long timeout,
TimeUnit unit)
Will never timeout, as it invokes the offer(Object) method. |
|
E |
peek()
|
|
E |
poll()
|
|
E |
poll(long timeout,
TimeUnit unit)
Fair retrieval of an object in the queue. |
|
Future<E> |
pollAsync()
Request an item from the queue asynchronously |
|
void |
put(E e)
|
|
int |
remainingCapacity()
|
|
E |
remove()
|
|
boolean |
remove(Object e)
|
|
boolean |
removeAll(Collection<?> c)
|
|
boolean |
retainAll(Collection<?> c)
|
|
int |
size()
|
|
E |
take()
|
|
Object[] |
toArray()
|
|
|
toArray(T[] a)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface java.util.Collection |
---|
equals, hashCode |
Constructor Detail |
---|
public MultiLockFairBlockingQueue()
Method Detail |
---|
public int getNextPut()
public int getNextPoll()
public boolean offer(E e)
offer
in interface BlockingQueue<E>
offer
in interface Queue<E>
public boolean offer(E e, long timeout, TimeUnit unit) throws InterruptedException
offer(Object)
method.
Once a lock has been acquired, the
offer
in interface BlockingQueue<E>
InterruptedException
public E poll(long timeout, TimeUnit unit) throws InterruptedException
poll
in interface BlockingQueue<E>
InterruptedException
public Future<E> pollAsync()
public boolean remove(Object e)
remove
in interface Collection<E>
remove
in interface BlockingQueue<E>
public int size()
size
in interface Collection<E>
public Iterator<E> iterator()
iterator
in interface Iterable<E>
iterator
in interface Collection<E>
public E poll()
poll
in interface Queue<E>
public boolean contains(Object e)
contains
in interface Collection<E>
contains
in interface BlockingQueue<E>
public boolean add(E e)
add
in interface Collection<E>
add
in interface BlockingQueue<E>
add
in interface Queue<E>
public int drainTo(Collection<? super E> c, int maxElements)
drainTo
in interface BlockingQueue<E>
UnsupportedOperationException
- - this operation is not supportedpublic int drainTo(Collection<? super E> c)
drainTo
in interface BlockingQueue<E>
UnsupportedOperationException
- - this operation is not supportedpublic void put(E e) throws InterruptedException
put
in interface BlockingQueue<E>
InterruptedException
public int remainingCapacity()
remainingCapacity
in interface BlockingQueue<E>
public E take() throws InterruptedException
take
in interface BlockingQueue<E>
InterruptedException
public boolean addAll(Collection<? extends E> c)
addAll
in interface Collection<E>
public void clear()
clear
in interface Collection<E>
UnsupportedOperationException
- - this operation is not supportedpublic boolean containsAll(Collection<?> c)
containsAll
in interface Collection<E>
UnsupportedOperationException
- - this operation is not supportedpublic boolean isEmpty()
isEmpty
in interface Collection<E>
public boolean removeAll(Collection<?> c)
removeAll
in interface Collection<E>
UnsupportedOperationException
- - this operation is not supportedpublic boolean retainAll(Collection<?> c)
retainAll
in interface Collection<E>
UnsupportedOperationException
- - this operation is not supportedpublic Object[] toArray()
toArray
in interface Collection<E>
UnsupportedOperationException
- - this operation is not supportedpublic <T> T[] toArray(T[] a)
toArray
in interface Collection<E>
UnsupportedOperationException
- - this operation is not supportedpublic E element()
element
in interface Queue<E>
UnsupportedOperationException
- - this operation is not supportedpublic E peek()
peek
in interface Queue<E>
UnsupportedOperationException
- - this operation is not supportedpublic E remove()
remove
in interface Queue<E>
UnsupportedOperationException
- - this operation is not supported
|
Apache Tomcat 7.0.28 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |