A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

打个比方,一个web程序中领取代金券的例子
首先数据库中:有一个字段代表是否领取过代金券
程序中:先读取数据库,判断该字段值,true则领取过,不允许再次领取,false则进行下一步领取,并再次发送sql设置标识字段为true

那么当连续2个请求快到一定程度(假设),也就是在领取方法中读取数据库判断还未完成之前第二个请求又进入该方法了,会否突破验证?
我觉得应该是不能的吧,始终应该会有一个先后的?

2 个回复

倒序浏览
一般情况下,领取代金券之前要进行用户登录,一个用户很难在短时间内几乎同时发出两个请求。假设有另一种情况,就是同一个账户可以在不同地方登录,然后他们同时发送领取代金券的请求,就会出现楼主说的情况。所以应该将领取动作和将数据库里的值设置为true两个步骤设置为线程同步。
回复 使用道具 举报
不会吧。
数据库自身都有提交验证
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马