为了使连接管理服务具有最大的通用性,必须考虑多线程环境,即并发问题。这个问题相对比较好解决,因为Java语言自身提供了对并发管理的支持,使用synchronized关键字即可确保线程是同步的。使用方法为直接在类方法前面加上synchronized关键字,如:
public synchronized Connection getConnection()
private DBConnectionManager()//私有构造函数,在其中调用初始化函数init()
private void init()//初始化连接池管理类的唯一实例,由私有构造函数调用
static synchronized public DBConnectionManager getInstance()//如果唯一的实例instance已经创建,直接返回这个实例;否则,调用私有构造函数,创建连接池管理类的唯一实例
public Connection getConnection(String name)//从名字为name的连接池对象//中得到一个连接
public Connection getConnection(String name, long time)//从名字为name 的连接池对象中取得一个连接,time是等待时间
public void freeConnection(String name, Connection con)//释放一个连接name是一个连接池对象的名
public synchronized void release()//释放所有资源