java - BoneCP:getConnection 方法是线程安全的还是我们必须处理它?

标签 java thread-safety connection-pooling bonecp

在使用 BoneCP 连接池时,我遇到了以下困惑,并希望听到一些关于这方面的建议:

  • getConnection BoneCP线程安全的方法?当有许多线程请求并行连接时,使用它的最佳方法是什么?
  • 每次使用连接后是否需要调用connection.close()
  • 如果需要调用connection.close(),它是真的断开与数据库的连接还是只是将连接发送到池中?

在此先感谢您的支持。

最佳答案

BoneCP的getConnection()是线程安全的;所以你不必自己做任何事情。 是的,如果连接完成,您需要调用 connection.close()(这不是特定于 BoneCP,而是适用于任何 JDBC 连接)。

与所有连接池一样,调用 connection.close() 会将连接返回到连接池,或者在某些情况下还会关闭物理连接(但实际上:这是您应该执行的实现细节不用担心)。

一般来说,连接池维护一个到数据库的物理连接池。当您调用 getConnection() 时,连接池会查找可用的物理连接并将其包装在一个逻辑 连接中。返回此逻辑连接。当您close() 逻辑连接时,连接池知道物理连接再次可用以供重用。

关于java - BoneCP:getConnection 方法是线程安全的还是我们必须处理它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7966093/

相关文章:

c# - C# 脚本中的线程安全

c# - 有没有可能这不是一成不变的

tomcat - apache 中的连接池(Web 服务器)

java - 如何在多个 Java 应用程序之间共享连接池

java - 单个方法的调用图(c++ 和 java)

java - 逐个字符搜索 Char

java - 调用SwingWorker run是否有错误以及如何同步doInBackground?

grails - 使用HTTPBuilder池化连接

java - CompletableFuture API17 的替代品

java - Activity 2 中 YouTube 播放器中 Activity 1 中的字符串