java并发提交重复数据

java并发提交重复数据

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

猜你喜欢