0

我有一个代码,它为特定的学生 ID 执行加载过程,为特定的学生 ID 执行插入操作。我有大约 500 个学生证,它们必须经过完全相同的程序。我想在这里使用多线程,因为我不想将学生 id 的数据逐个加载。我如何在这种情况下使用多线程,或者在这种情况下多线程有帮助。在这里,我如何在多线程中使用这个巨大的代码。

4

3 回答 3

4

不要在这里使用多线程。这将需要一个简单的任务并使其变得更加复杂。对于 500 条记录,一次只做一条。如果确实必须,请使用 JDBC 批处理来减少数据库命中次数。

于 2012-04-11T04:22:53.927 回答
0

如果你真的觉得你需要并行访问数据库的性能,那么你将需要:

  • 使用 aThreadPool并限制它将容纳的线程数。
  • 每个线程必须保持ThreadLocal与数据库的连接。
  • 每个线程必须持有一个ThreadLocal语句来执行插入。

这并不简单,但肯定可以做到。请确保您确实需要这样做。值得首先研究批处理,看看是否有帮助。

如果您有兴趣,我稍后会尝试在此处发布一些示例代码。

于 2012-04-11T16:15:59.483 回答
0

听起来很适合“生产者/消费者”模式。关于它的维基百科文章有一个合理的 Java 示例开始:

http://en.wikipedia.org/wiki/Producer-consumer_problem

并确保每个线程都有自己的数据库连接(它们通常不是线程安全的)。

于 2012-04-11T05:08:04.413 回答