class A
{
public static int a; //假设a为公有资源, 只有一份
public void func()
{
lock(this);
try
{
a++;
......
}
catch (Exception ex)
{
return; //当有两个线程调用func,问题在于这里, lock锁定的this, 那么当异常抛出之后, lock锁会自动解开吗。
}
}
}
------解决思路----------------------
lock(this); 你这里有个分号
lock了马上就解锁了。与下边try无关
------解决思路----------------------
出了lock方法体,就解锁了
http://blog.csdn.net/starfd/article/details/7062608