【发布时间】:2017-05-21 08:13:00
【问题描述】:
在JDBC driver for Postgres 中,PGSimpleDataSource 是线程安全的吗?
也就是说,如果我使用该类的缓存单例实例,我可以将它传递给多个线程吗?每个线程可能同时调用getConnection。文档没有提到线程安全。
我试图避免(a)在Connection 上进行多线程调用和(b)使用连接池,如discussed in the doc。我希望每个 servlet 线程都有一个单独的 Connection。
【问题讨论】:
-
@Gilberto 实际上,that doc you linked 只讨论 (a) 在
Connection上执行查询,以及 (b) 使用连接池。我的问题是关于PGSimpleDataSource上的getConnection,这是一个单独的主题。我问是因为我明显想避免(a)和(b)。 -
我试图证明这一点:PostgreSQL™ JDBC 驱动程序是线程安全的。因此,如果您的应用程序使用多个线程,那么您不必担心复杂的算法来确保一次只有一个线程使用数据库。
-
@Gilberto 您的引用断章取义,不回答我的问题。正如我上面所说,引用的文档解决了其他多线程问题,而不是我问的问题。
标签: java multithreading postgresql jdbc thread-safety