gpt4 book ai didi

java - 使用 Java 锁实现数据库并发

转载 作者:搜寻专家 更新时间:2023-10-30 21:47:21 25 4
gpt4 key购买 nike

我有以下场景。我有两张 table 。一个存储作为事务计数器的多个值。通过 Java 应用程序,第一个表的值被读取、递增并写入第二个表,以及新值被写回第一个表。显然,这是一个多用户系统,因此有可能出错。在 Java 中,我对这个问题的解决方案是提供锁,这些锁必须,嗯,应该,在对任一表执行任何操作之前获取。这些锁 ReentrantLocks 是静态的,表 1 中的每一列都有一个锁,因为值彼此完全独立。

这是推荐的方法吗?

干杯。

最佳答案

否。为数据库并发使用隐式数据库锁1。关系数据库支持事务,这是 ACID 的重要组成部分: 使用它们。

以 Java 为中心的锁不会跨 VM 工作,因此在多用户/服务器环境中无济于事


1 数据库足够智能,可以获取/释放锁以确保一致性和隔离性,甚至可以使用“无锁”实现,例如 MVCC。在极少数情况下必须请求显式数据库锁定,但这是一个高级用例。

关于java - 使用 Java 锁实现数据库并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12790593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com