我用多线程编写JAVA程序, 我有超过5000个线程,每个线程访问同一个表以插入或选择数据(不更新)。
我在Hibernate / Spring中使用HSQLDB(文件模式)。
我使用多线程的原因是为了减少执行时间,但是当时一个线程可以访问表。
我为多版本控制配置了hsqldb.tx=mvcc
但任何更改
有人可以知道如何让多个线程同时访问同一个表吗?
答案 0 :(得分:2)
使用多个线程从表中进行SELECT可以提高性能,因为线程可以同时访问同一个数据库表。
当多个线程对表执行INSERT时,数据库必须一次执行一个INSERT语句,因为可能存在必须在队列中检查的PRIMARY KEY或UNIQUE约束,以防止数据库中出现不一致。 / p>
在任何情况下,计算机都能够同时运行多个CPU核心的线程。如果您有更多线程,它们将由操作系统排队。
答案 1 :(得分:0)
我觉得HSQLDB文件模式,hsql模式和res模式不同时支持多线程或多用户连接。我还在检测执行同步任务所需的模式