PHP的高并发锁

2025-07-25 11:10:19

1、1.模拟高并发:许多用户抢购同一个商品(商品的数量有限)--抢购商品表

PHP的高并发锁

2、2.apache本身提供了一个模拟高并发请求的工具,名字:ab.exe

PHP的高并发锁

3、3.使用命令:> ab.exe -n 请求的次数 -c多少人请求 被请求地址

PHP的高并发锁

4、4.程序模拟用户下单,减少库存情况,我们使得60个用户过来做请求,实际库存应该剩余40个(原先是100个)具体通过以下ab.exe进行高并发模拟请求高并发:短时间之内对同一个页面进行大量请求

PHP的高并发锁

5、5.请求完毕,库存的剩余量实际为43个(与我们理论计算的结果40个不一致)

PHP的高并发锁

6、6.商品库存量剩余43个,说明我们的程序有问题原因:第一个用户做请求,感知库存量为80,之后其要做减少库存操作,在库存没有真实减少之前,第二个用户有迅速过来做请求,其获得的库存量也是80造成的结果是两个用户分表请求一次,库存量没有减少2个,而是减少1个(库存最终都是79)

PHP的高并发锁

7、7.问题解决:我们要利用“锁”机制,实现一个用户请求的时候,其他用户进行禁止做请求,直到第一个用户请求完成为止。

PHP的高并发锁
PHP的高并发锁
PHP的高并发锁
PHP的高并发锁
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢