Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
请帮助我了解当多个线程将尝试使用相同的连接时,DBCP 会起作用吗?
将为每个线程生成一个新连接?在这种情况下,使用连接池将没有任何优势。
JDBCConnection根据定义是单线程的。当一个线程从DataSource(DBCP 或任何其他实现)获得连接时,在该连接被释放(关闭,实际上将连接放回池中)之前,没有其他线程可以接触该连接。
Connection
DataSource
DBCP 不会阻止从多个线程使用相同的连接。但是如果多个线程同时请求DataSource新的连接,它会根据需要创建尽可能多的连接。如果并发线程数超过允许产生的最大配置连接数,getConnection()将阻塞或失败。
getConnection()