社区
C#
帖子详情
lock(this),lock(object),lock("string")区别?
jy02534047
2012-04-18 11:16:05
其中object就是private static readonly object object = new object();
第三个是个字符串
这三者用于处理并发时,有何区别?
...全文
366
7
打赏
收藏
lock(this),lock(object),lock("string")区别?
其中object就是private static readonly object object = new object(); 第三个是个字符串 这三者用于处理并发时,有何区别?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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) 具有上述两种可能。
拿锁和获取属性类似:看这个锁(属性)的作用域,其他的另作考虑
多线程编程系列学习之---
lock
关键字
概念
lock
语句获取给定对象的互斥
lock
,执行语句块,然后释放
lock
。 持有
lock
时,持有
lock
的线程可以再次获取并释放
lock
。 阻止任何其他线程获取
lock
并等待释放
lock
。
lock
只适用单机情况,分布式和负债均衡可以考虑分布式锁。 形式
lock
(this)
lock
(
string
)
lock
(
object
)
lock
(static
Object
) 测...
【C#|.NET】
lock
(this)其实是个坑
这里不考虑分布式或者多台负载均衡的情况只考虑单台机器,多台服务器可以使用分布式锁。出于线程安全的原因,很多种场景大家可能看代码中看到
lock
的出现,尤其是在资金类的处理环节。 但是
lock
(this)真的达到你的需求了吗?下面用实例来说明 理论常识不多说,回到业务场景,举个例子我们的需求一般就是在某个订单进入某个安全优先级比较高的流程时要针对这笔订单做到线程互斥。至于原因,这里再插一个概...
C++ this指针深度解析:从内存模型到实战应用
在C++面向对象编程中,成员函数如何访问特定对象的数据是一个核心机制。其原理在于编译器为每个非静态成员函数隐式添加了一个名为this的指针参数,它指向调用该函数的对象实例,从而实现了函数与数据的绑定。这一机制的技术价值在于保证了对象状态的封装性和操作的准确性,避免了命名冲突,并支撑了链式调用、多态等高级特性。在实际应用场景中,this指针广泛应用于构造函数初始化、Lambda表达式捕获、智能指针管理以及多继承下的地址调整。理解this指针的内存布局和const限定,是掌握C++对象模型、避免悬垂指针和实现线
构网型变流器正负序阻抗解耦特性及扫频验证研究(Simulink仿真实现)
内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。
科技中介服务机构如何在区域科技创新数智大脑中提升服务效能?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
C#
111,129
社区成员
642,540
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章