商城系统如何控制限量销售(并发读写)
商城系统一般都有限量销售的商品,那这个“限量”是如何控制的呢?
一想到的就是在下单的时候这样控制:
- C# code
//1、读取库商品剩余量num//2、假设一次购买量都为1if(num>0){//update num=num-1;//转入下单成功页面}else {//提示已卖完}这样的话在并发数稍多的情况下肯定会出问题,论坛也搜索了下好像一般的建议是对这个代码块加锁控制,
但加锁的话在并发数很高情况下大部分人要等好久才有提示,用自己的双核机子开1000个线程模拟这样操作最多的要等20多秒,这样也不现实吧。
比如商城里的秒杀活动一般都有好多人待秒,这个是怎么处理的呢?有没有人说说啊。
[解决办法]
使用事务队列。
[解决办法]
[解决办法]
谷哥或者度娘 关键字:悲观并发
[解决办法]
用读写锁
[解决办法]
行锁,把这条记录锁住。
记得下单的时候2次检查。
[解决办法]
应该可以,购物车想去判断,确实很难