我有一个Java程序,用于更新oracle数据库中的表。
我已经使用单个JDBC连接进行了尝试,但是它非常慢并且需要数小时才能完成。
我正在尝试使用HikariCP来建立连接池,并使多个线程从该池中获得单独的连接。
假设我在池中有6个线程和5个数据库连接,其中5个线程调用HikariDataSource.getConnection()
方法。他们每个人都会得到一个单独的数据库连接对象吗?
如果是,那么,当线程调用getConnection方法或使用空连接执行其余代码时,线程将处于阻塞/等待状态吗?
如果没有,我如何使它们分开连接?
最佳答案
每个线程询问连接(如果可用)获取一个单独的数据库连接对象
如果没有可用的连接,它将等待直到将连接释放到池中并接受它,如果直到定义了超时才获得连接,它将引发超时异常
无关紧要,因为每个线程将获得不同的连接
关于HikariCP and concurrency:
关于java - 与HikariCP并发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53388228/