java 如何并发更新数据库同一条数据

 我来答
百度网友5ba75e4
2016-01-04 · TA获得超过2045个赞
知道大有可为答主
回答量:1775
采纳率:60%
帮助的人:974万
展开全部

分2分情况:

一.普通的单应用并发,使用关键字synchronized就可以实现。

二.多应用或多台并发,这时在由于2者并非同一应用,使用synchronized并不能满足要求。此时,有下面几种方案:

  1. 数据库行级锁,优点是简单粗暴,缺点是容易死锁,非数据库专业人事建议不使用。

  2. 写入请求分离成一个独立项目,这就回到了第一种情况,优点是实现技术难度低,缺点是高并发性能相对不是很高。

  3. 使用分布式事务管理,这个是目前高并发处理的最优方案了。


最后要说的没有差的方案,每个方案都有其适用环境,请根据自身需求选择对应方案。

dnsxiu
推荐于2017-09-23 · 超过20用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:38万
展开全部
写一个方法用synchronized修饰
不同线程都调用这个方法

public synchronized void setData(String date){
//更新数据操作
}
public void main(){
new Thread("线程1"){
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
//操作
setData("");
}
}.start();

new Thread("线程2"){
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
//需要操作
setData("");
}
}.start();
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
库尔买买提
2015-12-09 · TA获得超过229个赞
知道小有建树答主
回答量:345
采纳率:100%
帮助的人:141万
展开全部
我觉得这是不可行的。

数据库里面的操作都具有原子性,在进行一个数据表的更新时,那个数据表的记录会被锁定,

只有更新成功或者失败的时候,你才能去操作那条数据。

如果对回答满意,请点【采纳答案】,如果还有问题,请点【追问】

希望我的回答对您有所帮助,希望能采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拥抱枯木
2015-11-21 · TA获得超过285个赞
知道小有建树答主
回答量:390
采纳率:0%
帮助的人:245万
展开全部
放心好了,直接正常更新操作就可以了,并发的问题,数据库系统本身会替你处理好的。
内部肯定是锁机制,保证数据的正确性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cucaracha
2015-12-18 · 超过54用户采纳过TA的回答
知道小有建树答主
回答量:95
采纳率:100%
帮助的人:77.2万
展开全部
在 Java 中一般使用乐观锁和悲观锁机制来并发更新同一条数据。
乐观锁是用程序来进行锁定同一条数据,悲观锁是用数据库本身的加锁机制来对同一条数据上锁。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式