黑马程序员技术交流社区
标题:
lock问题
[打印本页]
作者:
不明觉厉
时间:
2013-11-29 13:02
标题:
lock问题
本帖最后由 不明觉厉 于 2013-12-1 09:51 编辑
1:class A
{
lock(this)
{
public void MethodA(){}
}
lock(this)
{
public void MethodB(){}
}
}
2:class A
{
private object syn=new object();
lock(syn)
{
public void MethodA(){}
}
lock(syn)
{
public void MethodB(){}
}
}
在c#高级变成看到这两种表示方法,请问有什么不同吗?还是这两种方法其实一样
作者:
许庭洲
时间:
2013-11-29 19:51
1. lock 关键字的参数必须为基于引用类型的对象,该对象用来定义锁的范围;
2. 如果确实存在此类引用,锁的范围将扩展到该对象;
3. 如果一个容器对象将被多个线程使用,则可以将该容器传递给 lock,而 lock 后面的同步代码块将访问该容器;
4.只要其他线程在访问该容器前先锁定该容器,则对该对象的访问将是安全同步的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2