Lock的使用注意事项

Lock 相当于Monitor.Enter 检查变量是否被lock, 有就等待,没有就可以执行代码

lock的锁对象要求为一个引用类型。它可以锁定值类型,但值类型会被装箱,每次装箱后的对象都不一样,会导致锁定无效。

对于lock锁,锁定的这个对象参数才是关键,这个参数的同步索引块指针会指向一个真正的锁(同步块),这个锁(同步块)会被复用。

lock(this) 表示锁定当前实例,其他代码中使用该实例时,会发现实例被锁定。

lock字符串也是不可取的。C#中的字符串都是被保存在字符串池中的,如果当前程序中有两个不同的string变量有相同的值,那么这两个变量会同时被lock.

标准的锁的声明如下所示:

在当前类内部声明 private static readonly object lock = new object();

posted @   鲁燕云端  阅读(106)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示