举例,用户购买商品了,那么要扣钱吧,代码这样: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内的代码。但不同的类实例可以同时执行操作
- 1 回答
- 0 关注
- 500 浏览
添加回答
举报
0/150
提交
取消