c# – 锁定.Net – 是锁定参考还是对象?

c# – 锁定.Net – 是锁定参考还是对象?,第1张

概述假设我有这段代码: object o1 = new Object();object o2 = o1; 获取o1锁定与获取o2上的锁定相同? (如果o1被锁定,将锁定o2阻塞直到o1被释放?) 如果它锁定了引​​用本身,那么锁定将毫无用处.问题是,引用本身是按值复制的,因此您总是会锁定一些立即被丢弃的临时副本. 所以这不是它的工作原理.锁定是在引用引用的实例上获得的,而不是引用本身. 假设我有这段代码:
object o1 = new Object();object o2 = o1;

获取o1锁定与获取o2上的锁定相同? (如果o1被锁定,将锁定o2阻塞直到o1被释放?)

解决方法 如果它锁定了引​​用本身,那么锁定将毫无用处.问题是,引用本身是按值复制的,因此您总是会锁定一些立即被丢弃的临时副本.

所以这不是它的工作原理.锁定是在引用引用的实例上获得的,而不是引用本身.

总结

以上是内存溢出为你收集整理的c# – 锁定.Net – 是锁定参考还是对象?全部内容,希望文章能够帮你解决c# – 锁定.Net – 是锁定参考还是对象?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1240170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存