更新订单状态为锁定,锁定后不允许其他用户进行操作
状态更新时需要加锁,保证多用户操作时,状态一致
多个用户同时加锁时,只允许一个用户操作成功,其他用户返回订单状态不允许加锁
代码没有用到多线程,加lock有没有用
如果是 ASP.NET 应用,天生就是多线程。
什么意思,代码属于单线程,但是多个用户同时操作也可以使用lock锁住对象?
@灬丶: 如果lock的是static对象,不管是不是多线程,都会有用。
你这问题就有问题。用户又是多,代码又不是多线程...你是初写web程序?web程序只要不是特定得,几乎的框架本身就是多线程哈。如果是直接的客户端程序,多用户也不太可能不是“多线程”(不然还得自己实现时间片,通常只有写片子因为没有os,需要自己实现这玩意儿)。
我的意思就是一个简单的update,然后加一个lock有用吗?我的理解是lock是对多线程才有用
@灬丶: 建议看看操作系统一书。如果不是多用户(多线程),一段串行函数栈那lock 有或者没有 —— 又有什么意义呢。
没有用到多线程,加lock当然多此一举。不过如果你做的是web项目,通常框架是把用户的一次请求用一个线程来处理的,是多线程,可以用lock。
订单在内存吗?内存的话你可以用 lock 锁住,如果在数据库。你程序 lock 有什么用
没有啊,可以锁住那个方法