请帮助我理解热的DBCP将工作时,多个线程将尝试使用相同的连接?
是否会为每个线程派生一个新的连接?在这种情况下,使用连接池将没有任何优势。
发布于 2013-01-09 05:44:54
根据定义,JDBC Connection是单线程的。当一个线程从DataSource (DBCP或任何其他实现)获得连接时,其他任何线程都不能接触该连接,直到它被释放(关闭,这实际上将该连接放回池中)。
DBCP不会阻止从多个线程使用相同的连接。但是,如果多个线程同时向DataSource请求新的连接,它将根据需要创建任意多的连接。如果并发线程数超过允许派生的最大配置连接数,则getConnection()将阻塞或失败。
https://stackoverflow.com/questions/14224536
复制相似问题