java.sql.Connection thread安全吗?

为了重述这个问题:我是否应该避免在不同线程之间共享实现的类的实例?java.sql.Connection


答案 1

如果 JDBC 驱动程序符合规范,那么从技术上讲,是的,该对象是线程安全的,但您应该避免在线程之间共享连接,因为连接上的活动意味着一次只有一个线程能够执行任何操作。

您应该使用连接池(如Apache Commons DBCP)来确保每个线程都有自己的连接。


答案 2

java.sql.Connection是一个接口。因此,这完全取决于驱动程序的实现,但通常应避免在不同线程之间共享相同的连接,并使用连接池。此外,还建议池中的连接数高于工作线程数。