PoolUtils.erodingPool

Returns a pool that adaptively decreases its size when idle objects are no longer needed. This is intended as an always thread-safe alternative to using an idle object evictor provided by many pool implementations. This is also an effective way to shrink FIFO ordered pools that experience load spikes. <p> The factor parameter provides a mechanism to tweak the rate at which the pool tries to shrink its size. Values between 0 and 1 cause the pool to try to shrink its size more often. Values greater than 1 cause the pool to less frequently try to shrink its size. </p>

@param keyedPool the KeyedObjectPool to be decorated so it shrinks its idle count when possible. @param factor a positive value to scale the rate at which the pool tries to reduce its size. If 0 &lt; factor &lt; 1 then the pool shrinks more aggressively. If 1 &lt; factor then the pool shrinks less aggressively. @param <K> the type of the pool key @param <V> the type of pool entries @return a pool that adaptively decreases its size when idle objects are no longer needed. @see #erodingPool(KeyedObjectPool, float, bool)

Meta