Java 我是否错误地设置了DBCP池大小?

Java 我是否错误地设置了DBCP池大小?,java,multithreading,postgresql,executorservice,apache-commons-dbcp,Java,Multithreading,Postgresql,Executorservice,Apache Commons Dbcp,我将DBCP连接池与postgres和executor框架一起使用。我有一台2芯的机器。因此,我将线程数设置为2。我正在将数据源的初始大小设置为2,最大活动大小也设置为2。但是,执行时间与使用单个连接和单个线程时相同。有人知道我可能做错了什么吗?我正在使用BasicDataSource(org.apache.commons.dbcp.BasicDataSource)类型的对象(datasource),然后使用datasource.setInitialSize(2)和datasource.setM

我将DBCP连接池与postgres和executor框架一起使用。我有一台2芯的机器。因此,我将线程数设置为2。我正在将数据源的初始大小设置为2,最大活动大小也设置为2。但是,执行时间与使用单个连接和单个线程时相同。有人知道我可能做错了什么吗?我正在使用BasicDataSource(org.apache.commons.dbcp.BasicDataSource)类型的对象(datasource),然后使用datasource.setInitialSize(2)和datasource.setMaxActive(2)

如果可能,一些代码可以帮助处理上下文。您的并行算法可能在某些资源上被锁定或阻塞,从而导致有效的串行操作。这还取决于您如何设置连接池以及如何使用连接池。对于这样的情况,只需为每个线程启动一个连接并在没有连接池代码的情况下运行可能会更干净。如果我每次创建查询对象时都单独创建一个连接,那么我希望避免60毫秒的连接。因此,我想使用连接池。另外,创建多个连接会降低数据库的速度,我可能需要运行数千个查询。我会尽快发布我说过的代码来管理线程上的连接,而不是每次都破坏和重新创建。如果使用工作者/执行者模式并在线程上初始化上下文,则无需每次保存此问题时都重新创建上下文。