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

详见下面的代码:

https://img.mukewang.com/5b810d3d0001afee06010488.jpg

测试代码:

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

结果:

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

 

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


翻过高山走不出你
浏览 623回答 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,查看更多内容
随时随地看视频慕课网APP

相关分类

Java