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

多线程 并发问题

多线程 并发问题

德玛西亚99 2018-12-07 06:09:34
情况是有两台服务器同时运行程序,然后是一个抽奖程序,奖品的数量是有限制的(每一种奖品每天发放多少,一共发放多少都是有数的超过就不在发放,剩下的概率为零).1.怎么样避免数据重复插入2.怎样避免多发或者少发 因为以前出现过类似的情况,本人初学,能力有限,所以希望有一个好的解决办法?请帮忙梳理一下流程
查看完整描述

7 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

update 表名 set 数量字段-=1 where 商品id=id and 数量字段>0

返回影响行数为1则发放成功.为0则失败.

查看完整回答
反对 回复 2018-12-16
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

给数据库记录增加时间戳,更新的时候,带上时间戳条件。如果中途有人更新过,那么你会更新失败。

查看完整回答
反对 回复 2018-12-16
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

 我的数据库设计是有一个奖品表,表中有奖品名称,等级,一共发放数量,每天发放数量,已经中奖的数量,还有一个抽奖记录表,所有的数据都记录,如果抽中奖品就更新奖品表中的中奖数量,如果中奖数量大于等于每天发放数量就不在发放,概率就为零了.所以感觉不适用啊

查看完整回答
反对 回复 2018-12-16
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

@tanhao09: 是指你在查询数量和提交更改后的数量之前,没有其他人操作(保证数量是准确的)。

查看完整回答
反对 回复 2018-12-16
?
慕村9548890

TA贡献1884条经验 获得超4个赞

你的问题是 两个客户端,访问同一个数据库,两个客户端同时增删改查,有可能造成一个数据同时进行操作的问题?

查看完整回答
反对 回复 2018-12-16
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

对,是这样的

查看完整回答
反对 回复 2018-12-16
  • 7 回答
  • 0 关注
  • 553 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号