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

关于php解决并发的一些疑惑

关于php解决并发的一些疑惑

慕虎4850058 2017-11-17 14:10:15
首先 并发我是这样理解的    2个人同时下单  库存只有1  那么肯定有一个人无法抢到    也就是说  库存只会减1  订单也只会生成一条后来我用Jmemter   模拟1000人同时操作  发现订单确实只有一个  而且库存也没有负数  但是我并没有做什么锁啊或者队列这些   一谈到并发就会涉及到的东西$a是查询到的库存$b=$a-1;if($b>=0){    生成订单    修改库存}如果没有if判断  确实会负   但是如果加了这个if判断就库存只减少1   订单只有一条那么我的问题来了     加个if判断就能解决并发?   还是说实际上真正要处理的是模拟测试后出现的错误率(Jmemter  模拟1000人  error:59.5%)或者其他?  请各位大佬解答,如果我的思路有错误,也请毫不留情
查看完整描述

1 回答

?
qq_寂寞是孤独的路_0

TA贡献1条经验 获得超0个赞

同上!

查看完整回答
反对 回复 2017-11-17
  • 慕虎4850058
    慕虎4850058
    你也是这个问题?
  • qq_寂寞是孤独的路_0
    qq_寂寞是孤独的路_0
    我不是,但是我知道你对锁的理解错了。你可以看看这个,你的if 判断只是对该次请求能否执行的判断,并不是对锁的应用。你看一下并发同步就好了http://blog.csdn.net/clevercode/article/details/52493568
  • 慕虎4850058
    慕虎4850058
    对,按道理来说 我这样 如果有1000个人同时访问,那么数据库的订单应该是1000个 因为他们同时取的值都是1 减完1 以后满足if条件 生成1000个订单 但是实际上 我这里只生成了一个订单 还是说 我的模拟测试有问题? 并不是并发情况?
  • 1 回答
  • 0 关注
  • 1403 浏览

添加回答

举报

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