在C#中,lock
语句是synchronized
关键字的替代方案
以下是一个使用lock
语句的示例:
class Account
{
private object _lock = new object();
private int _balance;
public int Balance
{
get { return _balance; }
}
public void Deposit(int amount)
{
lock (_lock)
{
_balance += amount;
}
}
public bool Withdraw(int amount)
{
lock (_lock)
{
if (_balance >= amount)
{
_balance -= amount;
return true;
}
else
{
return false;
}
}
}
}
在这个示例中,我们使用lock
语句确保在同一时间只有一个线程可以访问_balance
变量。这样可以防止多个线程同时修改_balance
的值,从而确保数据的完整性和一致性。