当前位置: 首页 > 知识库问答 >
问题:

我应该在多线程程序中使用连接池吗?

权弘新
2023-03-14

我正在使用多个线程在不同的表中插入插入记录。此外,我正在使用批处理的记录插入,以提高效率。

注意:要插入的记录数以百万为单位。

我的问题是,在这种多线程环境中,我应该使用连接池吗?

我关心的问题:

每个线程将运行相当长的时间来执行数据库操作。所以,如果我的连接池的大小是2,线程的数量是4,那么在给定的时刻只有2个线程将运行。因此,其他两个线程将会在很长一段时间内保持理想状态以获得连接,因为针对百万条记录的db操作非常耗时。此外,这样的连接池将妨碍使用多线程的目的。

共有1个答案

皇甫聪
2023-03-14

在批处理中使用连接池是一个召集问题。它将帮助您限制打开连接的数量、放弃时间、关闭连接(如果您忘记关闭它们)、验证连接是否打开等。

请查看这里的Ol'Java的简单示例

 类似资料:
  • 问题内容: 我有一个Java进程,它启动大约60个线程,每个线程都访问一个MySql数据库。 使用C3P0这样的连接池是否会受益?还是仅适用于可扩展到大量用户的Web应用程序? 今天,我们有长期存在的JDBC连接(每个线程一个),我的计划是在每个SQL查询/插入之前从连接池中获得一个连接。 我想知道这是否会使我们的应用程序更稳定?另外,如果我将其配置为与数据库中的最大连接数匹配,则线程是否需要等待

  • 我对连接池的理解是;如果connectionstring完全相同,那么我们重用该连接,而不是建立新的连接。 我的问题是,我正在为并行处理创建许多线程。在这个“虚拟”程序中,我创建了500个线程,并让线程池函数处理这些线程。 步骤是: > < li> 每个线程在SQL中创建一个更新表。(说明更新的时间戳) 然后线程Hibernate1到10秒(随机)。 最后,线程在 SQL 中进行另一次更新(说明结

  • 在我的Spring Boot1.4应用程序中,我使用JDBC与本地MySQL进行对话,使用了以下属性- null 所以,我的问题是,您将如何检测Spring Boot应用程序线程池中的JDBC连接池线程? 还有,属性配置有什么问题?为什么没有创建预期线程数的JDBC连接池?

  • 问题内容: 在多线程应用程序中如何使用Hibernate(例如,每个客户端连接在服务器上启动它自己的线程)。 EntityManager应该仅由EntityManagerFactory创建一次,例如: 还是我必须为每个线程以及关闭EM的每个事务重新创建实体? 我的CRUD方法如下所示: 我要不要每次都跑?还是因为每个人都使用自己的缓存创建自己的EntityManager实例而使我陷入麻烦了? 问题

  • 问题内容: 我最近继承了一个小型Java程序,该程序从大型数据库中获取信息,进行一些处理并生成有关该信息的详细图像。原始作者使用单个线程编写了代码,然后对其进行了修改,以使其可以使用多个线程。 他在代码中定义了一个常量; 然后,它设置用于创建映像的线程数。 我理解他的理由,即线程数不能大于可用处理器的数目,因此将其设置为可以充分发挥处理器潜力的数量。这样对吗?还是有更好的方法来充分利用处理器的潜力

  • 我正在为客户构建一个新的 rails 应用程序。他们已经有一个单独的轨道应用程序来管理用户(具有所有标准的Deevee字段),并且不希望在两个应用程序中维护用户,这完全有意义。 我能够使用database.yml连接到他们的远程数据库,以获得连接细节,并在我的用户模型中建立连接。它的工作,虽然有点慢(通过公共互联网)。我担心依赖这个远程数据库来获取经常被查询的东西会严重降低我的应用程序的速度。我也