T - Type of element pooled in this pool.public class SoftReferenceObjectPool<T> extends BaseObjectPool<T>
| 构造器和说明 |
|---|
SoftReferenceObjectPool(PooledObjectFactory<T> factory)
Create a
SoftReferenceObjectPool with the specified factory. |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addObject()
Creates an object, and places it into the pool. addObject() is useful for
"pre-loading" a pool with idle objects.
|
T |
borrowObject()
Borrows an object from the pool.
|
void |
clear()
Clears any objects sitting idle in the pool.
|
void |
close()
Closes this pool, and frees any resources associated with it.
|
PooledObjectFactory<T> |
getFactory()
Gets the
PooledObjectFactory used by this pool to create and
manage object instances. |
int |
getNumActive()
Gets the number of instances currently borrowed from this pool.
|
int |
getNumIdle()
Gets an approximation not less than the of the number of idle
instances in the pool.
|
void |
invalidateObject(T obj)
Invalidates an object from the pool.
|
void |
returnObject(T obj)
Returns an instance to the pool after successful validation and
passivation.
|
isClosedtoStringaddObjects, invalidateObjectpublic SoftReferenceObjectPool(PooledObjectFactory<T> factory)
SoftReferenceObjectPool with the specified factory.factory - object factory to use.public void addObject()
throws java.lang.Exception
Before being added to the pool, the newly created instance is
validated and
passivated. If
validation fails, the new instance is
destroyed. Exceptions
generated by the factory makeObject or
passivate are propagated to the caller. Exceptions
destroying instances are silently swallowed.
addObject 在接口中 ObjectPool<T>addObject 在类中 BaseObjectPool<T>java.lang.IllegalStateException - if invoked on a closed pooljava.lang.Exception - when the factory has a problem creating
or passivating an object.public T borrowObject() throws java.lang.Exception
PooledObjectFactory.makeObject() method is invoked to create a
new instance.
All instances are activated
and validated before being returned by this method. If validation fails or
an exception occurs activating or validating an idle instance, the
failing instance is destroyed and another instance is retrieved from the pool, validated and
activated. This process continues until either the pool is empty or an
instance passes validation. If the pool is empty on activation or it does
not contain any valid instances, the factory's makeObject
method is used to create a new instance. If the created instance either
raises an exception on activation or fails validation,
NoSuchElementException is thrown. Exceptions thrown by
MakeObject are propagated to the caller; but other than
ThreadDeath or VirtualMachineError, exceptions
generated by activation, validation or destroy methods are swallowed
silently.
borrowObject 在接口中 ObjectPool<T>borrowObject 在类中 BaseObjectPool<T>java.util.NoSuchElementException - if a valid object cannot be providedjava.lang.IllegalStateException - if invoked on a closed pooljava.lang.Exception - if an exception occurs creating a new instancepublic void clear()
clear 在接口中 ObjectPool<T>clear 在类中 BaseObjectPool<T>public void close()
clear() to destroy and remove instances in the pool.
Calling addObject() or borrowObject() after invoking this
method on a pool will cause them to throw an
IllegalStateException.
close 在接口中 java.io.Closeableclose 在接口中 java.lang.AutoCloseableclose 在接口中 ObjectPool<T>close 在类中 BaseObjectPool<T>public PooledObjectFactory<T> getFactory()
PooledObjectFactory used by this pool to create and
manage object instances.public int getNumActive()
getNumActive 在接口中 ObjectPool<T>getNumActive 在类中 BaseObjectPool<T>public int getNumIdle()
getNumIdle 在接口中 ObjectPool<T>getNumIdle 在类中 BaseObjectPool<T>public void invalidateObject(T obj) throws java.lang.Exception
By contract, obj must have been obtained
using ObjectPool.borrowObject() or a related method as defined in an
implementation or sub-interface.
This method should be used when an object that has been borrowed is determined (due to an exception or other problem) to be invalid.
invalidateObject 在接口中 ObjectPool<T>invalidateObject 在类中 BaseObjectPool<T>obj - a borrowed instance to be disposed.java.lang.Exception - if the instance cannot be invalidatedpublic void returnObject(T obj) throws java.lang.Exception
validation fails
passivation
throws an exceptionreturnObject 在接口中 ObjectPool<T>returnObject 在类中 BaseObjectPool<T>obj - instance to return to the pooljava.lang.IllegalArgumentException - if obj is not currently part of this pooljava.lang.IllegalStateException - if an attempt is made to return an object to the pool that
is in any state other than allocated (i.e. borrowed).
Attempting to return an object more than once or attempting
to return an object that was never borrowed from the pool
will trigger this exception.java.lang.Exception - if an instance cannot be returned to the pool