java并发提交重复数据
2023-01-10阅读(646)

问:为什么Java程序在并发的情况下数据库会出现重复记录
- 答:这是一个高并发,多线程问题
如果数据粒度没有设计到行级锁,
比方说A这条记录 是100,并发情况下两个人拿到A记录100 一个更新为70,一个更新为80
实际是拿走了50的量,但是因为是并发情况 导致数据不正确。所以这个地方是一个数据锁的概念,至于为什么会这样,道理也很简单,一个排队做事情,一个并行做事情,能一样吗? - 答:数据表中应该建立唯一性约束,并在程序中选择覆盖或忽略
问:为什么Java程序在并发的情况下数据库会出现重复记录
- 答:如果遇到这个问题了.有一个办法可以实现你的要求.将读取存储过程的代码块加锁.达到线程安全就OK了.
怎么会呢?
每个对象都只有一个锁标记,只有获得锁标记的进程才能执行里面的代码....
不是几核的问题...CPU看似可以处理很多请求.其实一个时刻也只能处理一个请求.因为它的速度相当快.所以我们就觉得它是一次处理很多请求...
问:在java jsp中怎么处理用户多次点击提交按钮造成数据重复
- 答:按钮点击一次之后,设置按钮不可点
- 答:很多方式,可以用token,可以用JS控制
- 答:token 机制
你搜一下吧