老师,控制台报Watched variable changed.但是Redis数据库中的数据是正常执行后的结果

老师,控制台报Watched variable changed.但是Redis数据库中的数据是正常执行后的结果

老师,控制台报Watched variable changed.但是Redis数据库中的数据是正常执行后的结果,为什么视频里老师的控制台只输出了‘秒杀已经结束’

https://img1.sycdn.imooc.com//climg/6294cff10843629410130781.jpg

https://img1.sycdn.imooc.com//climg/6294cff1086e8f4609460321.jpg


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小猿 2022-05-31 10:04:21

同学,你好!在操作抢购过程中,有对kill_num,kill_user,进行watch 监控

https://img1.sycdn.imooc.com//climg/629577750964399808710543.jpg

 如果在当前事务执行之前kill_num,kill_user 被其他事务所改变值,会抛出异常,也就是同学出现的watched variable changed 

https://img1.sycdn.imooc.com//climg/629577930949203f08430642.jpg

祝学习愉快~



  • 提问者 慕田峪6467393 #1

    老师,那视频里老师在执行代码的时候,为什么没有抛出这个异常呢

    2022-05-31 13:48:38
  • 好帮手慕小猿 回复 提问者 慕田峪6467393 #2

    同学,你好!在执行buy函数时使用线程池来执行,同一时间会有多个线程同时执行,因此kill_num,kill_user容易被其它线程所更改,这个和电脑空闲度,磁盘分配程序空间都是有关系的,是正常现象的

    https://img1.sycdn.imooc.com//climg/6295c3e50928e27805110212.jpg

    祝学习愉快~

    2022-05-31 15:38:01
  • 提问者 慕田峪6467393 回复 好帮手慕小猿 #3

    好的明白了,谢谢老师

    2022-05-31 19:28:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师