连接池(不仅仅是数据库,还有很多其它的连接池)的目的是为了节省系统资源占用,提高系统运行效率。
在一个大型的企业级应用中,客户端数量很大,且不可预测。若每一个客户端都与其所申请的系统资源真实连接,一方面系统资源会很快用完,另一方面客户端在使用系统资源时都不可能全时使用,如一个数据库连接的资源,客户端只有在读数及保存时才真正使用,在客户端对数据进行处理时,此连接一直保持,其实是在浪费系统资源。
针对此问题,可以通过连接池来解决,一个连接池本身的实现中包括两方面内容,一是与系统资源的真实连接,一是与客户端的虚拟连接。
客户端向连接池申请来得到系统资源,而客户端是否真正得到资源的算法由连接池控制,最终的效果是客户端认为已与系统资源连接上了即可。
而连接池只保持与系统资源的几个(一些)真实连接,通过算法在多客户端间轮回服务。就好象饭店的服务员,只要有几个人就可以为很多人服务。