【发布时间】:2011-07-08 11:17:19
【问题描述】:
我正在开发一个多线程应用程序,其中需要不同的线程同时更新数据库。因此,我在创建它时向每个线程传递了一个新的语句对象(为了避免锁定,如果我发送单个对象)。我的疑问是:
可以从单个 jdbc 连接获得的语句对象的数量是否有限制?如果我创建了太多的语句对象,数据库连接会失败吗?
如果我在线程终止之前正确关闭语句,一次可以生成的线程数是多少(在具有 512Mb RAM 的系统上)?
无论我使用多少个语句对象来并行更新数据库,驱动程序不会在保持数据一致的同时更新数据库吗?我用mysql。
【问题讨论】:
-
谨慎的做法是不要与多个线程共享单个连接。这似乎是在自找麻烦,例如事务边界。可以使用具有多个连接的连接池吗?
-
我可能会调查一下。你会推荐哪一个? dbcp /bonecp/c3po ?
标签: java mysql multithreading jdbc