|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.csdn.modules.thrift.pool.BaseObjectPool<K,V>
public class BaseObjectPool<K,V>
The basic implementation of ObjectPool for high performance and scalability
This class should be thread-safe.
| Nested Class Summary | |
|---|---|
static class |
BaseObjectPool.Builder<K,V>
|
| Method Summary | |
|---|---|
V |
borrowObject(K key,
long timeoutInMillis)
Obtains an instance from this pool Instances returned from this method will have been either newly created with createObject or will be a previously idle object and
then validated with validateObject. |
void |
createAllMinObjects(K key)
Create objects using the factory until pool's minimum size, and then place them in the idle object pool
createAllMinObjects is useful for "pre-loading" a pool with idle objects. |
void |
destroy()
Destroy this pool, and free any resources associated with it Calling other methods such as createAllMinObjects or borrowObject,
returnObject or removeObject or removeAllObjects after invoking
this method on a pool will cause them to throw an IllegalStateException. |
int |
getActiveCount(K key)
Returns the number of instances currently borrowed from but not yet returned to the pool |
int |
getIdleCount(K key)
Returns the number of instances currently idle in this pool |
long |
getKeepAliveTimeoutInSecs()
|
int |
getMax()
|
int |
getMin()
|
int |
getPeakCount(K key)
Returns the total peak number of instances |
int |
getPoolSize(K key)
Returns the total number of instances |
boolean |
isBorrowValidation()
|
boolean |
isDisposable()
|
boolean |
isReturnValidation()
|
void |
removeAllObjects(K key)
Clears the specified pool, removing all pooled instances corresponding to the given key |
void |
removeObject(K key,
V value)
Removes(invalidates) an object from the pool By contract, value should have been obtained
using borrowObject using a key that is equivalent to the one used to
borrow the instance in the first place. |
void |
returnObject(K key,
V value)
Return an instance to the pool By contract, value should have been obtained
using borrowObject using a key that is equivalent to the one used to
borrow the instance in the first place. |
String |
toString()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Method Detail |
|---|
public void createAllMinObjects(K key)
throws NoValidObjectException
factory until pool's minimum size, and then place them in the idle object pool
createAllMinObjects is useful for "pre-loading" a pool with idle objects.
createAllMinObjects in interface ObjectPool<K,V>key - the key new instances should be added to
NoValidObjectExceptionpublic void removeAllObjects(K key)
key
removeAllObjects in interface ObjectPool<K,V>key - the key to clear
public V borrowObject(K key,
long timeoutInMillis)
throws PoolExhaustedException,
NoValidObjectException,
InterruptedException
createObject or will be a previously idle object and
then validated with validateObject.
By contract, clients should return the borrowed instance using
returnObject, removeObject
When the pool has been exhausted, a PoolExhaustedException will be thrown.
borrowObject in interface ObjectPool<K,V>key - the key used to obtain the objecttimeoutInMillis - the max time(milli-second) for borrowing the object. If the pool cannot return an instance in given time,
PoolExhaustedException will be thrown.
PoolExhaustedException - when the pool is exhausted
NoValidObjectException - when the pool cannot or will not return another instance
InterruptedException - when the pool is interrupted
public void returnObject(K key,
V value)
value should have been obtained
using borrowObject using a key that is equivalent to the one used to
borrow the instance in the first place.
returnObject in interface ObjectPool<K,V>key - the key used to obtain the objectvalue - a borrowed instance to be returned
public void removeObject(K key,
V value)
value should have been obtained
using borrowObject using a key that is equivalent to the one used to
borrow the instance in the first place.
This method should be used when an object that has been borrowed
is determined (due to an exception or other problem) to be invalid.
removeObject in interface ObjectPool<K,V>key - the key used to obtain the objectvalue - a borrowed instance to be removedpublic void destroy()
createAllMinObjects or borrowObject,
returnObject or removeObject or removeAllObjects after invoking
this method on a pool will cause them to throw an IllegalStateException.
destroy in interface ObjectPool<K,V>public int getPoolSize(K key)
getPoolSize in interface ObjectPool<K,V>key - the key to query
key currently idle and active in this pool or a negative value if unsupportedpublic int getPeakCount(K key)
getPeakCount in interface ObjectPool<K,V>key - the key to query
key or a negative value if unsupportedpublic int getActiveCount(K key)
getActiveCount in interface ObjectPool<K,V>key - the key to query
key currently borrowed in this pool or a negative value if unsupportedpublic int getIdleCount(K key)
getIdleCount in interface ObjectPool<K,V>key - the key to query
key currently idle in this pool or a negative value if unsupportedpublic int getMin()
public int getMax()
public boolean isBorrowValidation()
public boolean isReturnValidation()
public boolean isDisposable()
public long getKeepAliveTimeoutInSecs()
public String toString()
toString in class Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||