美文网首页
两个人同时到银行取钱问题

两个人同时到银行取钱问题

作者: 螃蟹和骆驼先生Yvan | 来源:发表于2020-05-20 17:23 被阅读0次

两个人同时到银行取钱问题?


延迟照成

一个人现在余额180块钱,然后他用180块钱就买东西,同时又去充值500块钱,买东西的时候查询余额先查询出来了余额是180,这个时候充值冲进去了500,然后他买了东西,更新了余额,余额变成0;
我以为这辈子差不多不会遇到了,真遇到了,说一下问题原因,我们知道数据库事务由严格的定义,它必须满足4个特性:
原子性(Atomicity),一致性(consistency),隔离性(Isolation),持久性(Durability)。
而我这里是因为没有满足原子性:也就是
表示组成一个事务的多个数据库操作是一个不可分割的原子单元,只有所有的操作执行成功,整个事务才提交。事务中的任何一个数据库操作失败,已经执行的任何操作都必须被撤销,让数据库返回初始状态。

解决办法
1.  update table set money = money+500,千万别这样写update table set money = 800
2.可以校验数据时效性,主要用于金融行业:
比如加个字段 lastupdatetime 每次更新都更新这个时间
你update的时候加个条件,你query出来的时间必须等于数据库里这个字段的时间,
否则不更新,提示数据已失效,这里必须保证数据查询时间不会太慢。否则时间肯定不一致

相关文章

  • 两个人同时到银行取钱问题

    两个人同时到银行取钱问题? 一个人现在余额180块钱,然后他用180块钱就买东西,同时又去充值500块钱,买东西的...

  • 为什么现在去银行取钱越来越难?钱都去哪了?

    身为一名国有银行基层网点银行从业柜姐,我觉得有必要和大家诉诉苦,关于银行取钱为什么越来越难这个问题。去银行取钱无非...

  • 银行取钱

    Console.WriteLine("请输入你的密码:"); string mima = "111111"; in...

  • java同步线程(一)

    java同步线程(一) 线程安全问题,有一个经典的问题: 银行取钱问题:1、账户类 2、取钱的线程类: 3、Tes...

  • 如果银行是这样的

    Day1:小明到天坑银行去取钱。 小明:你好,我要取钱。 天坑银行:尊敬的用户你好,取多少? 小明:取2万! 天坑...

  • 《取钱》

    1. 今天我到银行ATM取钱,我认识的老李和他老婆也来取钱,只听他老婆对他说:...

  • 飞盗遇上机器人,彻底栽惨了

    最近,新城市区笼罩在恐怖当中,尤其是有钱人,到银行取钱都战战兢兢。不是非紧急用钱谁都不去银行取钱。原因是连续...

  • 银行取钱逛装修市场

    银行取钱逛装修市场: 阿勒买了新房要装修,去银行取钱,带上存折、银行卡和身份证。银行保安说柜台在整理,有...

  • 我拒绝了帮老人到银行取钱

    回想好久以前我拒绝了帮老人到银行取钱,让老人心里很不高兴! 当时我邻居老人,说要我帮忙去银行去取钱,我说:可以让他...

  • 2022.3.15(晴)

    今天上午8:30,终于结束。到办事处领支票,去银行取钱。

网友评论

      本文标题:两个人同时到银行取钱问题

      本文链接:https://www.haomeiwen.com/subject/dlmnohtx.html