重新表述这个问题:我应该避免在不同的线程之间共享实现了
java.sql.Connection
接口的类的实例吗?java.sql.Connection
接口的类的实例吗?java.sql.Connection是一个接口。因此,它完全取决于驱动程序的实现,但通常情况下,您应该避免在不同线程之间共享相同的连接,并使用连接池。此外,建议将池中的连接数设置得比工作线程数更高。
Oracle JDBC和多线程文档:
因为所有的Oracle JDBC API方法都是同步的,如果两个线程同时尝试使用连接对象,则其中一个将被强制等待,直到另一个完成其使用。
因此,在Oracle的情况下可能是安全的,但并发访问会受到瓶颈的影响。