池就是建立一定数目的资源对象,例如数据库连接对象,企业对象等,在一个容器对象中取出资源对象让

客户端应用程序使用,当客户端使用完毕之后再把资源对象放回容器对象之中。

在系统开始时应用系统已经在一个容器对象中建立了一定数目的连接对象等待客户端程序使用这些连接对

象来连接到数据库。

当有客户端应用程序需要连接数据库时,就从容器对象中取出一个已经建立的连接对象让客户应用程序来

连接数据库,这样可以大幅加快客户应用程序连接数据库的时间。

如果有持续不断的客户端应用程序需要连接数据库,系统便会一直从容器对象中取出连接对象让客户应用

程序使用,一直到容器对象中没有可供使用的连接对象为止。如果容器对象使用完了所有的连接对象之后

新的客户应用程序就必须等待其它的客户应用程序释放连接对象才能够取得连接来连接数据库。

当有客户应用程序结束数据库的连接时,它会回传连接对象到容器对象再等待其它的客户应用程序使用。

有一些功能更为先进的应用服务器会在客户要求使用连接时,如果在连接池中已经没有任何的空闲连接可

以给这个客户使用,那么应用服务器会在所有已经拥有连接的客户应用程序中,查看那一个客户已经最久

没有使用连接。然后应用服务器会把这个客户使用的连接拿给目前正在要求连接的客户使用。如此一来所

有要求使用连接的客户都可以在一定的时间之内取得可以使用的连接。如果稍后被应用服务器拿走连接的

客户又需要使用连接时,应用服务器会使用相同的方法再从其它最久没有使用连接的客户中拿走连接,并

且拿给现在要使用连接的客户使用。

对于其它的资源对象,例如企业对象等也都是使用这种观念和技术实现的。

原文地址:https://www.cnblogs.com/hnxxcxg/p/2940813.html