我有一个代码,它为特定的学生 ID 执行加载过程,为特定的学生 ID 执行插入操作。我有大约 500 个学生证,它们必须经过完全相同的程序。我想在这里使用多线程,因为我不想将学生 id 的数据逐个加载。我如何在这种情况下使用多线程,或者在这种情况下多线程有帮助。在这里,我如何在多线程中使用这个巨大的代码。
问问题
240 次
3 回答
4
不要在这里使用多线程。这将需要一个简单的任务并使其变得更加复杂。对于 500 条记录,一次只做一条。如果确实必须,请使用 JDBC 批处理来减少数据库命中次数。
于 2012-04-11T04:22:53.927 回答
0
如果你真的觉得你需要并行访问数据库的性能,那么你将需要:
- 使用 a
ThreadPool
并限制它将容纳的线程数。 - 每个线程必须保持
ThreadLocal
与数据库的连接。 - 每个线程必须持有一个
ThreadLocal
语句来执行插入。
这并不简单,但肯定可以做到。请确保您确实需要这样做。值得首先研究批处理,看看是否有帮助。
如果您有兴趣,我稍后会尝试在此处发布一些示例代码。
于 2012-04-11T16:15:59.483 回答
0
听起来很适合“生产者/消费者”模式。关于它的维基百科文章有一个合理的 Java 示例开始:
http://en.wikipedia.org/wiki/Producer-consumer_problem
并确保每个线程都有自己的数据库连接(它们通常不是线程安全的)。
于 2012-04-11T05:08:04.413 回答