📄 index.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Overview - Commons Pool</title><style type="text/css" media="all"> @import url("./style/maven-base.css"); @import url("./style/maven-theme.css");@import url("./style/project.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta><meta name="author" content="Commons Documentation Team"></meta><meta name="email" content="commons-dev@jakarta.apache.org"></meta><meta name="author" content="Rodney Waldhoff"></meta><meta name="email" content="rwaldhoff@apache.org"></meta><meta name="author" content="Sandy McArthur"></meta><meta name="email" content="sandymac@apache.org"></meta></head><body class="composite"><div id="banner"><a href="http://jakarta.apache.org" id="organizationLogo"><img alt="The Apache Software Foundation" src="http://jakarta.apache.org/images/original-jakarta-logo.gif"></img></a><a href="http://jakarta.apache.org/commons/pool/" id="projectLogo"><img alt="Commons Pool" src="./images/pool-logo-white.png"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xleft">Last published: 02 April 2006 <span class="separator">|</span>燚oc for 1.3 </div><div class="xright"> <a href="http://jakarta.apache.org/commons/" class="externalLink" title="External Link">Jakarta Commons</a> </div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuCommons燩ool"><h5>Commons燩ool</h5><ul><li class="none"><strong><a href="index.html">Overview</a></strong></li><li class="none"><a href="apidocs/index.html">Javadoc</a></li><li class="collapsed"><a href="guide/index.html">Developers燝uide</a></li><li class="none"><a href="examples.html">Examples</a></li><li class="none"><a href="downloads.html">Downloads</a></li><li class="none"><a href="http://wiki.apache.org/jakarta-commons/Pool" class="externalLink" title="External Link">Wiki</a></li></ul></div><div id="menuProject_Documentation"><h5>Project Documentation</h5><ul><li class="none"><strong><a href="index.html">About</a></strong></li><li class="collapsed"><a href="project-info.html">Project Info</a></li><li class="collapsed"><a href="maven-reports.html">Project Reports</a></li><li class="none"><a href="http://jakarta.apache.org/commons/charter.html" class="externalLink" title="External Link">Development Process</a></li></ul></div><div id="menuCommons"><h5>Commons</h5><ul><li class="none"><a href="http://jakarta.apache.org/commons/" class="externalLink" title="External Link">Home</a></li><li class="collapsed"><a href="http://jakarta.apache.org/commons/components.html" class="externalLink" title="External Link">Components</a></li><li class="collapsed"><a href="http://jakarta.apache.org/commons/sandbox/index.html" class="externalLink" title="External Link">Sandbox</a></li><li class="collapsed"><a href="http://jakarta.apache.org/commons/dormant/index.html" class="externalLink" title="External Link">Dormant</a></li><li class="none"><a href="http://jakarta.apache.org/commons/volunteering.html" class="externalLink" title="External Link">Volunteering</a></li><li class="none"><a href="http://jakarta.apache.org/commons/patches.html" class="externalLink" title="External Link">Contributing Patches</a></li><li class="none"><a href="http://jakarta.apache.org/commons/building.html" class="externalLink" title="External Link">Building Components</a></li><li class="none"><a href="http://jakarta.apache.org/commons/releases/index.html" class="externalLink" title="External Link">Releasing Components</a></li><li class="none"><a href="http://wiki.apache.org/jakarta-commons/FrontPage" class="externalLink" title="External Link">Wiki</a></li></ul></div><div id="legend"><h5>Legend</h5><ul><li class="externalLink">External Link</li><li class="newWindow">Opens in a new window</li></ul></div><a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy"><img alt="Built by Maven" src="./images/logos/maven-feather.png"></img></a></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="The_Pool_Component"></a><h2>The Pool Component</h2> <p> Pool provides an Object-pooling API, with three major aspects: <ol> <li> A generic object pool interface that clients and implementors can use to provide easily interchangable pooling implementations. </li> <li> A toolkit for creating modular object pools. </li> <li> Several general purpose pool implementations. </li> </ol> </p> </div><div class="section"><a name="Releases"></a><h2>Releases</h2> <p> See the <a href="downloads.html">downloads</a> page for information on obtaining releases. The <a href="release-notes-1.3.html">commons pool 1.3 release</a> is the most recent stable release. </p> </div><div class="section"><a name="Features"></a><h2>Features</h2> <p> The <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/package-summary.html" class="externalLink" title="External Link">org.apache.commons.pool</a> package defines a handful of pooling interfaces and some base classes that may be useful when creating new pool implementations. </p> <div class="subsection"><a name="ObjectPool"></a><h3>ObjectPool</h3> <p> <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/ObjectPool.html" class="externalLink" title="External Link"><code>ObjectPool</code></a> defines a trivially simple pooling interface: </p> <div class="source"><pre>public interface ObjectPool { Object borrowObject(); void returnObject(Object borrowed);}</pre></div> <p> Some client classes won't integrate with <i>Pool</i> any more than this. Clients written to this interface can use arbitrary <code>ObjectPool</code> implementations interchangeably. </p> <p> <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/BaseObjectPool.html" class="externalLink" title="External Link"><code>BaseObjectPool</code></a> provides an abstract base implementation of <code>ObjectPool</code>. Clients are encouraged but not required to extend <code>BaseObjectPool</code> for new <code>ObjectPool</code> implementations. </p> <p> <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/KeyedObjectPool.html" class="externalLink" title="External Link"><code>KeyedObjectPool</code></a> defines a similiar interface for pools composed of heterogenous objects: </p> <div class="source"><pre>public interface KeyedObjectPool { Object borrowObject(Object key); void returnObject(Object key, Object borrowed);}</pre></div> </div> <div class="subsection"><a name="PoolableObjectFactory"></a><h3>PoolableObjectFactory</h3> <p> The <i>Pool</i> package makes it possible separate the way in which instances are pooled from the way in which instances are created and destroyed. <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/PoolableObjectFactory.html" class="externalLink" title="External Link"><code>PoolableObjectFactory</code></a> supports this by providing a generic inteface for the lifecycle of a pooled object: </p> <div class="source"><pre>public interface PoolableObjectFactory { Object makeObject(); void activateObject(Object obj); void passivateObject(Object obj); boolean validateObject(Object obj); void destroyObject(Object obj);}</pre></div> <p> <code>ObjectPool</code> implementations may be written to accept arbitrary <code>PoolableObjectFactory</code>s. This makes is possible for clients to select pooling-behavior distinct from the kinds of objects that are pooled. </p> <p> <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/BasePoolableObjectFactory.html" class="externalLink" title="External Link"><code>BasePoolableObjectFactory</code></a> provides an abstract base implementation of <code>PoolableObjectFactory</code> that makes implementations a snap. </p> <p> <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/KeyedPoolableObjectFactory.html" class="externalLink" title="External Link"><code>KeyedPoolableObjectFactory</code></a> defines a similiar interface for <code>KeyedObjectPool</code>s: </p> <div class="source"><pre>public interface KeyedPoolableObjectFactory { Object makeObject(Object key); void activateObject(Object key, Object obj); void passivateObject(Object key, Object obj); boolean validateObject(Object key, Object obj); void destroyObject(Object key, Object obj);}</pre></div> <p> <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/BaseKeyedPoolableObjectFactory.html" class="externalLink" title="External Link"><code>BaseKeyedPoolableObjectFactory</code></a> provides an abstract base implementation of <code>KeyedPoolableObjectFactory</code> that makes implementations a snap. </p> </div> <p> The <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/impl/package-summary.html" class="externalLink" title="External Link">org.apache.commons.pool.impl</a> package provides some <i>Pool</i> implementations. </p> <div class="subsection"><a name="StackObjectPool"></a><h3>StackObjectPool</h3> <p> <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/impl/StackObjectPool.html" class="externalLink" title="External Link"><code>StackObjectPool</code></a> will pool a finite number of "idle" instances, but will create new instances a needed in order to support high demand. </p> <p> <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/impl/StackKeyedObjectPool.html" class="externalLink" title="External Link"><code>StackKeyedObjectPool</code></a> offers the same behavior for keyed pools. </p> </div> <div class="subsection"><a name="GenericObjectPool"></a><h3>GenericObjectPool</h3> <p> <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/impl/GenericObjectPool.html" class="externalLink" title="External Link"><code>GenericObjectPool</code></a> provides a wide variety of configuration options, including the ablity to cap the number of idle or active instances, to evict instances as they sit idle in the pool, etc. </p> <p> <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/impl/GenericKeyedObjectPool.html" class="externalLink" title="External Link"><code>GenericKeyedObjectPool</code></a> offers the same behavior for keyed pools. </p> </div> <div class="subsection"><a name="SoftReferenceObjectPool"></a><h3>SoftReferenceObjectPool</h3> <p> <a href="http://jakarta.apache.org/commons/pool/apidocs/org/apache/commons/pool/impl/SoftReferenceObjectPool.html" class="externalLink" title="External Link"><code>SoftReferenceObjectPool</code></a> can grow as needed, but allows the garbage collector to evict idle instances from the pool as needed. </p> </div> </div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -