社区
C#
帖子详情
lock(this),lock(object),lock("string")区别?
jy02534047
2012-04-18 11:16:05
其中object就是private static readonly object object = new object();
第三个是个字符串
这三者用于处理并发时,有何区别?
...全文
313
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) 具有上述两种可能。
拿锁和获取属性类似:看这个锁(属性)的作用域,其他的另作考虑
零基础Java入门课程
if语句、switch语句、嵌套判断 for语句、while语句、do-while语句、嵌套循环 类和对象 面向过程和面向对象的
区别
类的构成、访问修饰符、对象的内存分配 this关键字、按值传递与按引用传递、对象的初始化顺序 ...
关于C#中的
lock
object
、
lock
this 、
lock
static
object
http://www.cnblogs.com/yuqilin/archive/2011/10/15/2213766.html
为什么要用
lock
【readonly】
object
?为什么不要
lock
(this)?
为什么不要 "
lock
(this)" ?
c#
lock
(obj) 与
lock
(this)
区别
lock
(this) 锁定 当前实例对象,如果有多个类实例的话,
lock
锁定的只是当前类实例,对其它类实例无影响。 直接上代码。 主窗体代码如下: delegate void SetTextCallback(
string
text); public Form1() ...
为什么不要 "
lock
(this)" ?
lock
object
为什么要
lock
,
lock
了什么? 当我们使用线程的时候,效率最高的方式当然是异步,即各个线程同时运行,其间不相互依赖和等待。但当不同的线程都需要访问某个资源的时候,就需要同步机制了,也就是说当对同一个...
C#
110,545
社区成员
642,581
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章