我有一个java程序来更新oracle数据库中的表。
我尝试过使用单个JDBC连接,它非常慢,需要几个小时才能完成。
我试图使用HikariCP来创建一个连接池,并让多个线程从池中获得独立的连接。
假设池中有6个线程和5个数据库连接,其中5个线程调用HikariDataSource.getConnection()方法。他们每个人都会得到一个独立的db连接对象吗?
如果是,那么,当线程调用getConnection方法或使用空连接执行剩余代码时,线程会处于阻塞/等待状态吗?
如果不是,我怎样才能让他们分开联系?
发布于 2018-11-20 07:46:28
他们每个人都会得到一个独立的db连接对象吗?
每个线程询问连接(如果可用的话)将获得一个单独的db连接对象。
如果是,那么,当线程调用getConnection方法或使用空连接执行剩余代码时,线程会处于阻塞/等待状态吗?
如果没有可用的连接,它将等到连接被释放到池并接受它,如果它在超时定义后才会得到连接,它将抛出一个超时异常。
如果不是,我怎样才能让他们分开联系?
不相关,因为每个线程将得到不同的连接。
HikariCP包含一个名为ConcurrentBag的自定义无锁集合.这个想法是从C# .NET ConcurrentBag类中借用来的,但内部实现却完全不同。ConcurrentBag提供..。
...resulting具有高度并发性、极低的延迟性和尽可能减少错误共享的发生.
https://stackoverflow.com/questions/53388228
复制相似问题