为了账号安全,请及时绑定邮箱和手机立即绑定

用线程解决同时存钱和取钱的问题?

用线程解决同时存钱和取钱的问题?

HelloWord3 2017-03-24 20:11:24
怎么用线程解决 同时存钱和取钱的问题。当余额>10000时 不能存钱,当余额<0时不能取钱。
查看完整描述

1 回答

已采纳
?
尧叔

TA贡献77条经验 获得超201个赞

保证数据的一致性,在账户里面加入一个version 字段 代表版本号,持久化之前看看版本号和库里面是否一样,每持久化一次就版本号加1。

例如:加钱的线程和扣钱的线程同时取出来同一条数据金额为1000版本号为1,第一个线程加钱100然后准备存入数据,对比发现版本号和库里面都是1说明期间该条数据没有被动过可以update,然后库里面这条数据变成了1100版本号为2,扣钱的线程扣100 准备把账户改成900 对比版本号发现已经不是1而是2了 就会更新失败,这样就会避免脏数据。理解这个你的问题就可以自己解决了,毕竟你的问题描述的不清楚,我不确定怎么回答。

谢谢采纳~

查看完整回答
2 反对 回复 2017-03-27
  • 1 回答
  • 0 关注
  • 1575 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信