我从未真正理解过这一点。它看起来几乎像是创建一个虚拟对象并将其lock
,就像下面的例子一样。
class Account
{
decimal balance;
private Object thisLock = new Object();
public void Withdraw(decimal amount)
{
lock (thisLock)
{
if (amount > balance)
{
throw new Exception("Insufficient funds");
}
balance -= amount;
}
}
}
来自https://msdn.microsoft.com/en-us/library/c5kehkcz.aspx。
为什么语言设计者不能使它这样呢?
在IT技术方面,无法提供更多上下文信息。
class Account
{
decimal balance;
public void Withdraw(decimal amount)
{
lock
{
if (amount > balance)
{
throw new Exception("Insufficient funds");
}
balance -= amount;
}
}
}
会等同吗?