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.
|
isClosed
toString
addObjects, invalidateObject
public 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.Closeable
close
在接口中 java.lang.AutoCloseable
close
在接口中 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