我有一个Java程序,用于更新oracle数据库中的表。

我已经使用单个JDBC连接进行了尝试,但是它非常慢并且需要数小时才能完成。

我正在尝试使用HikariCP来建立连接池,并使多个线程从该池中获得单独的连接。

假设我在池中有6个线程和5个数据库连接,其中5个线程调用HikariDataSource.getConnection()方法。他们每个人都会得到一个单独的数据库连接对象吗?

如果是,那么,当线程调用getConnection方法或使用空连接执行其余代码时,线程将处于阻塞/等待状态吗?

如果没有,我如何使它们分开连接?

最佳答案



每个线程询问连接(如果可用)获取一个单独的数据库连接对象



如果没有可用的连接,它将等待直到将连接释放到池中并接受它,如果直到定义了超时才获得连接,它将引发超时异常



无关紧要,因为每个线程将获得不同的连接

关于HikariCP and concurrency:

关于java - 与HikariCP并发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53388228/

10-10 01:05