c#里面的lock能不能解决下面这个问题

2020-10-13 15:12发布

更新订单状态为锁定,锁定后不允许其他用户进行操作

状态更新时需要加锁,保证多用户操作时,状态一致

多个用户同时加锁时,只允许一个用户操作成功,其他用户返回订单状态不允许加锁

代码没有用到多线程,加lock有没有用

标签: .net
4条回答
We Are One
2楼-- · 2020-10-13 15:42

如果是 ASP.NET 应用,天生就是多线程。

查看更多
时光不老,我们不散
3楼-- · 2020-10-13 15:50

你这问题就有问题。用户又是多,代码又不是多线程...你是初写web程序?web程序只要不是特定得,几乎的框架本身就是多线程哈。如果是直接的客户端程序,多用户也不太可能不是“多线程”(不然还得自己实现时间片,通常只有写片子因为没有os,需要自己实现这玩意儿)。

查看更多
冷血范
4楼-- · 2020-10-13 15:56

订单在内存吗?内存的话你可以用 lock 锁住,如果在数据库。你程序 lock 有什么用

查看更多
淡お忘
5楼-- · 2020-10-13 15:57

没有用到多线程,加lock当然多此一举。不过如果你做的是web项目,通常框架是把用户的一次请求用一个线程来处理的,是多线程,可以用lock。

查看更多
登录 后发表回答