lock(this),lock(object),lock("string")区别?

jy02534047 2012-04-18 11:16:05
其中object就是private static readonly object object = new object();
第三个是个字符串

这三者用于处理并发时,有何区别?
...全文
366 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotaxe 2012-04-18
  • 打赏
  • 举报
回复
1.lock不能锁定空值某一对象可以指向Null,但Null是不需要被释放的。
2.lock不能锁定string类型,虽然它也是引用类型的。因为字符串类型被CLR“暂留”

这意味着整个程序中任何给定字符串都只有一个实例,就是这同一个对象表示了所有运行的应用程序域的所有线程中的该文本。因此,只要在应用程序进程中的任何位置处具有相同内容的字符串上放置了锁,就将锁定应用程序中该字符串的所有实例。因此,最好锁定不会被暂留的私有或受保护成员。
3.lock锁定的对象是一个程序块的内存边界
4.值类型不能被lock,因为前文标红字的“对象被释放”,值类型不是引用类型的

5.lock就避免锁定public 类型或不受程序控制的对象。

cheng2005 2012-04-18
  • 打赏
  • 举报
回复
自己去MSDN查lock的说明

http://msdn.microsoft.com/zh-cn/library/c5kehkcz.aspx
jy02534047 2012-04-18
  • 打赏
  • 举报
回复
继续求助
jy02534047 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
没啥区别,要区别的是参数的作用域,参数需要一个全局的唯一变量,否则lock很容易失去意义
[/Quote]

能说得再明白一点吗?我也没太听懂
orochiheart 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
没啥区别,要区别的是参数的作用域,参数需要一个全局的唯一变量,否则lock很容易失去意义
[/Quote]
学习!! 但是还是不懂。。。
bdmh 2012-04-18
  • 打赏
  • 举报
回复
没啥区别,要区别的是参数的作用域,参数需要一个全局的唯一变量,否则lock很容易失去意义
铜臂阿铁木 2012-04-18
  • 打赏
  • 举报
回复
lock(this) 如果当前类型是LockTest
那么 l1= new LockTest(),l2 = new LockTest(); l1和l2同时进行操作的时候,这个所没有意义。
lock(static object)
l1和l2同时操作时 有锁的功能。

lock(string) 具有上述两种可能。


拿锁和获取属性类似:看这个锁(属性)的作用域,其他的另作考虑
内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧