采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
高并发下单的时候,如果用这种写锁的话,就会造成点击该商品查看商品详情的时候就会出现bug的情况。老师,也可以用文件锁吧?
文件锁也是可以解决高并发的问题的。在runtime里面生成一个文件,在用户进来减少库存时,把文件lock住,当用户操作完毕,把文件unlock。后面的人在前面的人没操作之前是不能修改的。
文件锁,啥意思?你说遇到的问题应该是那一刻卡住了,但是往往一个事物在30ms之内处理完成的,所以对于一般网站够用了,我在课程中讲解了2种锁,一种悲观锁 一种乐观锁,在并发量高到一定程度会使用其他手段辅助,例如每年的火车票秒杀,或者常规秒杀,在那一会总会出现服务很慢的情况,一般会加入redis之类解决
老师用的第二种锁给了很好的启发。之前开发的时候,我用了另外一种PHP的文件锁机制,在减库存量的代码前面$fp = fopen('./order.lock', 'r');flock($fp, LOCK_EX);库存量更新完后释放锁 flock($fp, LOCK_UN);fclose($fp); 由于高并发秒杀的时候mysql的锁会造成商品表相关操作处于阻塞状态,整个网站跟这个表相关的功能都被拖慢,用户体验不太好。
登录后可查看更多问答,登录/注册
传统PC后端与火热微信结合,打造一个摩登的商业电商系统
1.6k 4
1.2k 17
1.0k 17
1.4k 14
1.2k 12