猿问

为什么线程中的locke 没有锁住呢

详见下面的代码:

测试代码:

https://img4.mukewang.com/5b810d4a000191cf05380304.jpg

结果:

success
订单正在处理中……
success
订单正在处理中……
订单正在处理中……
订单正在处理中……

 

请教大神们这是什么原因呢?


翻过高山走不出你
浏览 641回答 1
1回答

狐的传说

lock (asynclocker) { bool isExists = processingOrders.Find(s => s.ToLower().Trim() == orderid.ToLower().Trim()) == null; if (isExists) { processingOrders.Add(orderid.ToLower().Trim()); } return isExists; } 这是作用域,执行完那么asynclocker 就Exit()了;你还想怎么锁 —— 不让第二次执行?不让第二次执行,你只需要拿个静态变量累加并判断。
随时随地看视频慕课网APP

相关分类

Java
我要回答