多个线程写入单个数据库表

时间:2015-11-21 11:34:33

标签: java mysql database multithreading hibernate

我遇到了使用hibernate将多个线程插入数据库中的单个表的问题。每个线程生成一些数据,然后将它们插入表中。问题是由于数据库锁定,插入仅由1个线程处理。什么是最好的解决方法,所以线程可以同时插入?我试图有一个专用线程写入表,其他人将生成数据。但是数据生成的速度比插入的速度快,因此它无法解决我的问题。

我唯一的想法是为每个线程创建自己的数据库/表,但这对我来说似乎有点奇怪,因为我不知道我将提前创建多少个线程。有更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

您必须保留队列以保持要插入的数据。所以所有处理线程都可以将数据插入队列。插入线程将数据插入DB后,可以将其从队列中删除。