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

请教,关于每个用户lock的问题

请教,关于每个用户lock的问题

一只萌萌小番薯 2018-08-05 10:13:45
举例,用户购买商品了,那么要扣钱吧,代码这样:private static object locker = new object();public void Buy() {    lock(locker)     {        var member = 获取会员();        if(member.money>= 商品.价格)         {             member.money -=  商品.价格;            //其他操作             保存会员();         }     } }这里是一定要用lock的吧?大家是不是也是这么做的。可是我突然发现用的全局locker,这样的话有多个用户同时购买,那么岂不是只能有1个用户在购买,其他都被阻挡了?这个问题大家是怎么做的啊?
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

private readonly object locker = new object()

这样子每个实例都lock自己的locker了,保证同一个实例同时只能有一个线程执行lock内的代码。但不同的类实例可以同时执行操作


查看完整回答
反对 回复 2018-08-23
  • 1 回答
  • 0 关注
  • 489 浏览

添加回答

举报

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