0

请帮助我了解当多个线程将尝试使用相同的连接时,DBCP 会起作用吗?

将为每个线程生成一个新连接?在这种情况下,使用连接池将没有任何优势。

4

1 回答 1

1

JDBCConnection根据定义是单线程的。当一个线程从DataSource(DBCP 或任何其他实现)获得连接时,在该连接被释放(关闭,实际上将连接放回池中)之前,没有其他线程可以接触该连接。

DBCP 不会阻止从多个线程使用相同的连接。但是如果多个线程同时请求DataSource新的连接,它会根据需要创建尽可能多的连接。如果并发线程数超过允许产生的最大配置连接数,getConnection()将阻塞或失败。

于 2013-01-08T21:44:53.837 回答