ResourcePool是个简单的类它可以以多种有效的途径进行扩展,例如,限制资源数目,因为大量的开放资源会降低性能。在已经达到资源的最大限制时,限制等待循环资源的时间。如果没有这个限制,线程将无限等待循环资源。在另一个线程中创建资源,以等待资源或循环资源。如果在创建新资源之前循环资源是可用的,就节省了时间。
如果没有可用资源,但还没有达到资源限制,getResource将等待可用资源,一旦有可用资源,getResource就试图通过重新调用自己来得到该资源。如果已经达到了最大资源限制,但没有可用资源,getResource等待再循环的资源,或者引发异常。ResourcePool类提供第二个getResource方法,它用超时表示当池满时资源池等待新资源的最大时间。这个超时参数是整型,以毫秒为单位。