连接池的设计
1.driver,jdbc,username,password
2.连接池内部维护一个忙的连接列表,一个空闲连接列表
3.初始化连接池,即创建最小连接数个空闲连接,放到空闲连接列表中。
4.有需要来取链接时,看下空闲连接表中有无可用连接,如果有,将这个链接放到忙的连接列表中,并将此链接返回。如果没有,并且忙的连接列表的个数没达到最大连接数,则创建一个连接,将这个连接放到忙的连接列表中,将此链接返回。如果已经达到最大连接数,等待一段时间(timeout,有默认值,或者外部参数传入),重新检测是否有空闲连接,有返回,没有,直接返回空。
5.一个连接使用完毕后,释放连接,将其从忙的连接列表,移到空闲连接列表。
6.另启一个线程,维护空闲连接的状态,使其与数据库的连接不会断开,如果已经断开,则放弃此连接,重新创建一个空闲连接。如果空闲连接数,大于设置的最大空闲连接数,将最长时间不用的连接释放。
7.另启一个线程,检测忙的连接列表是否在使用,是否在正常工作。??